12

Ember を取得したとしobjます。バックエンドと何らかの同期を行う場合、Promise チェーンを使用する可能性があります。

obj.save().then(function(res){
  // Success callback
}, function(res){
  // Fail callback
});

Ember.js promise チェーンの done/always コールバックはあり.then()ますか?

3 番目のパラメーター関数を追加しようとしましたが、役に立ちませんでした。

4

4 に答える 4

3

残念ながらありません。RSVP.Promiseただし、プロトタイプを変更して独自に作成することもできます。

Ember.RSVP.Promise.prototype.always = function(func) {
  return this.then(func, func);
}

したがって、次のことができます。

// will show success
Ember.RSVP.resolve('success').always(function(msg) { 
  alert(msg) 
})

// will show error
Ember.RSVP.reject('error').always(function(msg) { 
  alert(msg) 
})

役立つことを願っています

于 2013-09-25T13:15:23.577 に答える
0

gorner のソリューションは機能しますが、Ember Data の場合は次のものも追加する必要があります。

Ember.PromiseProxyMixin.reopen({
  andThen: function() {
    var promise = this.get('promise');
    return promise['andThen'].apply(promise, arguments);
  }
});

その理由は、関数が( http://emberjs.com/api/data/classes/DS.PromiseObject.htmlDS.Model.save()を参照) を返すためです。これは実装されていませんが、実装されています。したがって、モデルを保存するときに promise で機能するためには、その mixin で関数を使用できるようにする必要があります。PromiseObjectEmber.RSVP.PromiseEmber.PromiseProxyMixinandThen

于 2014-06-11T13:55:38.523 に答える