短い質問:なぜPromise.chainがJavascriptにないのですか(Promise.allに匹敵します)?私の実装はo.kですか?私の「コーデック」は間違って振る舞っJavascriptでPromise.chain([...])を実装していますか?
:
- グラフを読み取るXMLファイルから
- すべてのノードの作品は を終了するのを待っている全てのノード(作成方法は、約束を返す)
- を作成します
- ノード間のすべてのエッジを作成する
問題:データベースの順序でfまたはノードの作成(ステップ2)が実行時に混乱していました。
解決方法:メソッドが実行される前に、正しい順序でデータベース呼び出しをチェーンする必要がありました。
/**
* chains a list of functions (that return promises) and executes them in the right order
* [function() {return Promise.resolve();}, function() {return Promise.resolve();}]
*
* @param funcs is an array of functions returning promises
* @returns {Promise}
*/
function chain_promises(funcs) {
if (funcs.length < 1) {
return Promise.resolve();
}
var i = 0;
return chain_executor(funcs, i);
}
/**
* Recursive help method for chain_promises
* 1) executes a function that returns a promise (no params allowed)
* 2) chains itself to the success resolve of the promise
*
* @param funcs is an array of functions returning promises
* @param i is the current working index
*/
function chain_executor(funcs, i) {
var promise = funcs[i]();
return promise.then(function(){
console.log(i);
if (funcs.length > i+1) {
return chain_executor(funcs, i+1);
} else {
return Promise.resolve();
}
})
}
として空の配列になってしまいます(私が思う)とき空の配列を渡します。 – Soronbe
あなたは正しいです!ここにチェックを入れるつもりです。ありがとう – Danipol
[ES6 Promises - async.eachのようなものがありますか?](https://stackoverflow.com/questions/32028552/es6-promises-something-like-async-each) – jib