English ▼
Skip to page content Skip to main navigation
e.g. "templates" or "datastore"

# NDB Future Class

#### Experimental!

NDB is an experimental, innovative, and rapidly changing new feature for App Engine. Unfortunately, being on the bleeding edge means that we may make backwards-incompatible changes to NDB. We will inform the community when this feature is no longer experimental.

A `Future` represents the result of an asynchronous operation. When created, it probably doesn't have any result data. When the operation finishes, the `Future` gets the result. An application can call a `Future` object's `get_result()` method; if the result has arrived, the method returns it; otherwise, it waits for the result to arrive and then returns it.

- Instance Methods
  - check_success()
  - done()
  - get_exception()
  - get_result()
  - get_traceback()
  - wait()
- Class Methods
  - wait_all()
  - wait_any()

## Instance Methods

check_success()
  Check to see if the operation succeeded. Waits if necessary. Raises an exception if there was a problem; returns `None` if there was no problem.
done()
  Returns `True` if the result (or exception) has arrived; otherwise, returns `False`. This function does not wait.
get_exception()
  Waits if necessary; then returns the exception (or `None` if there was no exception). Returns the exception, doesn't raise it.
get_result()
  Waits if necessary; then returns the result or raises the exception.
get_traceback()
  Waits if necessary; then returns the exception's traceback object (or `None` if there was no traceback object). Python's `traceback` module has functions to print and work with traceback objects.
wait()
  Waits until a result or exception arrives. Always returns `None`.

## Class Methods

wait_all(futures)
  Wait until all `Futures` in the passed list are done.

  Arguments

  futures
    List of `Future` objects.

  Returns `None`.

wait_any(futures)
  Wait until at least one of a list of `Futures` is done.

  Arguments

  futures
    List of `Future` objects.

  Returns one `Future` that is done. (Returns `None` if the `futures` list is empty.)