Ember.PromiseProxyMixin Class
PUBLIC
Defined in: packages/ember-runtime/lib/mixins/promise_proxy.js:34
Module: ember-runtime
A low level mixin making ObjectProxy promise-aware.
1 2 3 4 5 6 7 8 9 10 11 | 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
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. 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.
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' |
Please login to continue.