これはネストされた約束事の私の最初のショットです。私はbluebirdライブラリを使用していますが、このアイデアはすべての約束ライブラリにとって同じだと思います。親の約束の中から約束事を解決する
ハイレベルで、これは私がやろうとしているものです:
myService.getSomeData(url)
.then((data) => {
myOtherService.getMoreData(data.uniqueId)
.then((thisDataIsAnArray) => {
//loop over the data above and do something
});
});
getMoreData()
はXサービス呼び出しを行うと長い配列Xの要素に結果を格納することになっています。これは私が迷子になり始めるところです。私はこの方法を工夫する方法がわからず、私はそこから戻るべきです。私はブルーバードのPromise.all
とPromise.map
でいくつかの刺し傷を取ったが、鞭打っていて、私は提案を求めていると思った。
あなたの目標を理解しようとしています。だから、一連の約束を実行し、最初の約束の決議が与えられた別の約束を実行し、次に約束の第2セットの決議に基づいて第3の論理を実行したいとしますか? 約束の目標の1つは、「コールバック地獄」を削除することです。結果として、それらを入れ子にするのではなく、約束を繋ぐことはあなたにとって良いことかもしれません。 – jpodwys
[チェーンを平らにする](http://stackoverflow.com/a/22000931/1048572)から始めたいと思うかもしれません。 – Bergi
すべての非同期メソッドは、内部の非同期アクションの結果に対して* promise *を返す必要があります。すべて1つ1つ。 – Bergi