Representation of an object that is pending an asynchronous result.
Subscribe to event 'changed' Event to which functions should be registered in order to execute upon readiness.
Unsubscribe to event 'changed' Event to which functions should be registered in order to execute upon readiness.
Watch for changes in ready state and result until condition is satisfied.
If we don't need to wait, execute the callback, otherwise register it to an event that will fire once the necessary result is computed and ready.
The actual result returned from server.