PUBLIC
Defined in: packages/ember-runtime/lib/mixins/promise_proxy.js:40
Module: ember-runtime
A low level mixin making ObjectProxy promise-aware.
let ObjectPromiseProxy = Ember.ObjectProxy.extend(Ember.PromiseProxyMixin);
let proxy = ObjectPromiseProxy.create({
promise: Ember.RSVP.cast($.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
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. Note that $.getJSON doesn't return an ECMA specified promise, it is useful to wrap this with an RSVP.cast so that it behaves as a spec compliant promise.
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.
// Assuming the following json:
{
firstName: 'Stefan',
lastName: 'Penner'
}
// both properties will accessible on the proxy
proxy.get('firstName') //=> 'Stefan'
proxy.get('lastName') //=> 'Penner'
RSVP.Promisepublic
An alias to the proxied promise's catch.
See RSVP.Promise.catch.
Function
RSVP.Promisepublic
An alias to the proxied promise's finally.
See RSVP.Promise.finally.
Function
RSVP.Promisepublic
An alias to the proxied promise's then.
See RSVP.Promise.then.
Function
Will become true if the proxied promise is fulfilled.
Default: false
Once the proxied promise has settled this will become false.
Default: true
Will become true if the proxied promise is rejected.
Default: false
Once the proxied promise has settled this will become true.
Default: false
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:
Ember.ObjectProxy.extend(Ember.PromiseProxyMixin).create({
promise: <thenable>
});
If the proxied promise is rejected this will contain the reason provided.
Default: null
© 2017 Yehuda Katz, Tom Dale and Ember.js contributors
Licensed under the MIT License.
http://emberjs.com/api/classes/Ember.PromiseProxyMixin.html