だから私はretuner Promise
関数で単純なループを持っています。これは次のようになります:何とかPromisesで同期ループを実行できますか?
最初の機能が終了し、次の要素に繰り返されるまで何とかして待つことができますか?
P.S. 約束を使用する必要はありません。
だから私はretuner Promise
関数で単純なループを持っています。これは次のようになります:何とかPromisesで同期ループを実行できますか?
最初の機能が終了し、次の要素に繰り返されるまで何とかして待つことができますか?
P.S. 約束を使用する必要はありません。
既に約束を使用している場合は、どうぞお試しください。最高のPromiseモジュール、Bluebirdには、配列全体を繰り返し実行するように設計されたヘルパー関数があり、実行を制御する約束:http://bluebirdjs.com/docs/api/promise.mapseries.htmlがあります。あなたはこのようにそれを使用します。
Promise.mapSeries(categories, function(category) {
// Parse the category, and return a value or a promise.
});
parseCategoryは別の場所で定義された関数であるならば、あなたはもっと簡単に得ることができます。
Promise.mapSeries(categories, parseCategory);
並列に呼び出しを実行map
姉妹機能もあります。で
待つ/非同期あなたはかなり簡単にそれを行うことができると思いサポート:
async function parseCategories (categories) {
for (var i = 0; i < categories.length; i++) {
await parseCategory(categories[i])
}
}
ライブラリなしES6でそれをしたい場合:「約束のため
var parseCategoryPromise = Promise.resolve();
for (var i = 0; i < categories.length; i++) {
(function(i){
parseCategoryPromise = parseCategoryPromise.then(function(){
return parseCategory(categories[i])
});
})(i)
}
てみグーグル滝"。これはあなたがここで欲しいものでなければなりません。 (申し訳ありませんが、現在完全な回答を作成する時間がありません) – Sirko
サードパーティのライブラリを使用しないで行う方法については、こちらをご覧ください:https://remysharp.com/2015/12/18/promise-waterfall –