私は実行する必要がある関数の配列を持っています。 これらの関数はすべて約束を返します。約束が成立した後に約束を返す実行関数
すべての関数を直列に実行したいが、次の関数は、前の関数の約束が完了している場合にのみ開始することができます。
これはasyncまたはbluebirdライブラリでは簡単だと思っていましたが、これに対して簡単な解決策が見つかりません。
これは私が(テストされていない)ものですが、これは既に存在するため、標準のライブラリソリューションを探していましたか?
function runFuncs(funcs) {
function funcRunner(funcs, resolve, reject, pos=0) {
funcs[pos]().then(function() {
pos++;
if (pos < length(funcs)) {
funcRunner(funcs, pos);
} else {
resolve();
}
}).catch(function(err) {
reject(err);
});
}
return new Promise(function(resolve, reject) {
funcRunner(funcs, resolve, reject);
});
}
を、あなたは '含めることができますあなたは質問で試したことがありますか?そして、期待されたものと実際の結果が何であるかを記述する。 – guest271314
^^^^あなたを助けるためにいくつかのコードが必要です。 @ guest271314は何を言った –
@ r03 _ "私は(テストされていない)ものを作りましたが、標準のライブラリソリューションを探していました。 Questionで 'js'と似たパターンを使用するライブラリの勧告を求めていますか? Questionに 'funcs'配列に含まれる' js'を含めることができますか? – guest271314