Ember.PromiseProxyMixin Class packages/ember-runtime/lib/mixins/promise_proxy.js:36
PUBLIC
Defined in: packages/ember-runtime/lib/mixins/promise_proxy.js:36
Module: ember-runtime
A low level mixin making ObjectProxy promise-aware.
1 2 3 4 5 6 7 8 9 10 11 |
var ObjectPromiseProxy = Ember.ObjectProxy.extend(Ember.PromiseProxyMixin); var proxy = ObjectPromiseProxy.create({ promise: $.getJSON('/some/remote/data.json') }); proxy.then(function(json){ // the json }, function(reason) { // the reason why you have no json }); |
the proxy has bindable attributes which track the promises life cycle
1 2 3 4 |
proxy.get('isPending') //=> true proxy.get('isSettled') //=> false proxy.get('isRejected') //=> false proxy.get('isFulfilled') //=> false |
When the $.getJSON completes, and the promise is fulfilled with json, the life cycle attributes will update accordingly.
1 2 3 4 |
proxy.get('isPending') //=> false proxy.get('isSettled') //=> true proxy.get('isRejected') //=> false proxy.get('isFulfilled') //=> true |
As the proxy is an ObjectProxy, and the json now its content, all the json properties will be available directly from the proxy.
1 2 3 4 5 6 7 8 9 |
// Assuming the following json: { firstName: 'Stefan', lastName: 'Penner' } // both properties will accessible on the proxy proxy.get('firstName') //=> 'Stefan' proxy.get('lastName') //=> 'Penner' |
Methods
Properties
catch
(callback)
RSVP.Promise
public
An alias to the proxied promise's catch
.
See RSVP.Promise.catch.
Parameters:
- callback Function
Returns:
finally
(callback)
RSVP.Promise
public
An alias to the proxied promise's finally
.
See RSVP.Promise.finally.
Parameters:
- callback Function
Returns:
then
(callback)
RSVP.Promise
public
An alias to the proxied promise's then
.
See RSVP.Promise.then.
Parameters:
- callback Function
Returns:
isFulfilled
public
Will become true
if the proxied promise is fulfilled.
Default: false
isPending
public
Once the proxied promise has settled this will become false
.
Default: true
isRejected
public
Will become true
if the proxied promise is rejected.
Default: false
isSettled
public
Once the proxied promise has settled this will become true
.
Default: false
promise
public
The promise whose fulfillment value is being proxied by this object.
This property must be specified upon creation, and should not be changed once created.
Example:
1 2 3 |
Ember.ObjectProxy.extend(Ember.PromiseProxyMixin).create({
promise: <thenable>
});
|
reason
public
If the proxied promise is rejected this will contain the reason provided.
Default: null