のは、私が直列に約束のカップルを実行するには、次のコードを使用していましょう:遅延
let paramerterArr = ['a','b','c','d','e','f']
parameterArr.reduce(function(promise, item) {
return promise.then(function(result) {
return mySpecialFunction(item);
})
}, Promise.resolve())
コードは単純に約束を待ち、(約束を返す)mySpecialFunctionを呼び出します解決されてからmySpecialFunctionを再度呼び出します。したがって、関数は配列内のすべての要素に対して1回だけ正しい順序で呼び出されます。
mySpecialFunction(item)
の呼び出しごとに少なくとも50ミリ秒の遅延があることを確認するにはどうすればよいですか?
約束事が正しい順序で実行され、実行時間がmySpecialFunction
のたびに変わることが重要です。
私は同期スリープがうまくいくと思いますが、別のスレッドでこのコードを実行するつもりはないので、ブラウザーで迷惑なUIがフリーズします。
setTimerを何らかの方法で使用できるかどうかはわかりません。私は約束の返還を遅らせることはできないということです。
これは役に立ちます。http://bluebirdjs.com/docs/api/promise.delay.html –
私はすでにそれを見ましたが、私はブルーバードを使用していません。私はネイティブプロミスを使用しています。 (ECMA6) – Forivin