2013-07-04 6 views
15

私はEmber-Dataモデルを持っています。それがロードされてから約束と同じモデルを返すと、私は約束の中で何らかの処理をしたいと思います。これは今私が持っているものです。他の約束事が連鎖できるように、返品オブジェクトを約束としてどのように包みますか?EmberデータモデルのEmber.jsで約束を作成するには

App.Member.find(1).then(function(member){ 

    //do some processing here 
    return member; // Does this need to be wrapped as a promise? 

} 
+0

「結果」から別の「約束」でない結果を返すと、解決されたとみなされます。だから、 'member'を返すことは別の' promise'の中でそれをラップし、 'resolve'を手動で呼び出すことと同じです。 'member'が別の非同期操作で取得される場合、ラッパー' promise'だけが必要です。 –

+0

これは知っておいて..ありがとう! – ianpetzer

答えて

32

基本的にはこのような約束を作成することができます:あなたが見てasloでき

promise.then(function(value) { 
    // success 
}, function(value) { 
    // failure 
}); 

var promise = new Ember.RSVP.Promise(function(resolve, reject){ 
    // succeed 
    resolve(value); 
    // or reject 
    reject(error); 
}); 

、その後、あなたはそれがさらにチェーンにthenプロパティを使用することができますがこのjsbinは、それらの実装方法を示しています。 thisも非常に役に立ちます。

希望します。

+0

それは素晴らしいです..ありがとう。 – ianpetzer

+0

ちょっと解決する必要があります、その部分を拒否しますか?または私はそれを間違ってしまった。 私は、解決、拒否と成功の違い、約束の失敗(機能(解決、拒否){})をどういう意味かというと、(成功、失敗)。 私は約束がtrueを返した後、成功が "then"で呼び出されたと仮定します。それがfalseを返した場合、失敗が呼び出されますか? – wallop

+0

model.getまたはmodel.set関数を使用できません http://jsbin.com/furukuyetu/1/edit – suryakrish

関連する問題