2016-12-07 8 views
3

私はをビルドしました。 それは構造が隣にあります:私は、画面の「ブロック解除」にする親リクエストの内部リクエストに失敗しました

request1() 
    .then(response => {}) 
    .then(() => { 
     request2().done(response => {}) 
    } 
    .fail(err => {}); 

ブロックdoneではとfail。しかし、時々私は "ブロック解除"コードを取得することはできません。

request2に何か悪いことがありますが、この悪いことは親要求のfailで解決されていませんか?

答えて

1

はい、あなたは2番目で約束を返す必要があるため:あなたがブロックを使用しない場合は別の方法として

.then(() => { 
    return request2().done(response => {}) 
} 

、リターンがES6ラムダで自動的に行われます。

.then(() => request2().done(response => {})) 
+0

こんにちは!ありがとう、論理的な解決策のようです。 – demo

0

あなたfaildoneコールバックが同じ約束にありません。 request1()およびrequest2()は独自のものを作成します。

var deferred = request1(); 

deferred.then(response => {}) 
     .then(() => { 
      request2().done(deferred.resolve) 
        .fail(deferred.reject) 
     }) 
     .done(response => {}) 
     .fail(err => {}); 
関連する問題