API Docs for: 1.0 pre
Show:

Ember.PromiseProxyMixin Class

A low level mixin making ObjectProxy, ObjectController or ArrayController's promise aware.

var ObjectPromiseController = Ember.ObjectController.extend(Ember.PromiseProxyMixin);

var controller = ObjectPromiseController.create({
  promise: $.getJSON('/some/remote/data.json')
});

controller.then(function(json){
   // the json
}, function(reason) {
   // the reason why you have no json
});

the controller has bindable attributes which track the promises life cycle

controller.get('isPending')   //=> true
controller.get('isSettled')  //=> false
controller.get('isRejected')  //=> false
controller.get('isFulfilled') //=> false

When the the $.getJSON completes, and the promise is fulfilled with json, the life cycle attributes will update accordingly.

controller.get('isPending')   //=> false
controller.get('isSettled')   //=> true
controller.get('isRejected')  //=> false
controller.get('isFulfilled') //=> true

As the controller is an ObjectController, and the json now its content, all the json properties will be available directly from the controller.

// Assuming the following json:
{
  firstName: 'Stefan',
  lastName: 'Penner'
}

// both properties will accessible on the controller
controller.get('firstName') //=> 'Stefan'
controller.get('lastName')  //=> 'Penner'

If the controller is backing a template, the attributes are bindable from within that template

{{#if isPending}}
  loading...
{{else}}
  firstName: {{firstName}}
  lastName: {{lastName}}
{{/if}}

Methods

catch

(
  • callback
)
RSVP.Promise

An alias to the proxied promise's catch.

See RSVP.Promise.catch.

Parameters:

Returns:

RSVP.Promise:

finally

(
  • callback
)
RSVP.Promise

An alias to the proxied promise's finally.

See RSVP.Promise.finally.

Parameters:

Returns:

RSVP.Promise:

then

(
  • callback
)
RSVP.Promise

An alias to the proxied promise's then.

See RSVP.Promise.then.

Parameters:

Returns:

RSVP.Promise:

Properties

isFullfilled

Unknown

Will become true if the proxied promise is fulfilled.

Default: false

isPending

Unknown

Once the proxied promise has settled this will become false.

Default: true

isRejected

Unknown

Will become true if the proxied promise is rejected.

Default: false

isSettled

Unknown

Once the proxied promise has settled this will become true.

Default: false

promise

Unknown

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.ObjectController.extend(Ember.PromiseProxyMixin).create({
  promise: <thenable>
});

reason

Unknown

If the proxied promise is rejected this will contain the reason provided.

Default: null