私はNodeJSバックエンドサービスで作業しており、約束を使ってデータをロードしています。さて、私は、さまざまなソースからのアイテムの組み合わせ(配列)を作りたいと思っています。私は以下の解決策を持っていますが、これがこのようなことを回避する正しい方法だとは思わないのです。 ループ(ノード)での約束の使用
var results = [];
loop(items, index, data, results).then(function() {
console.log(results);
});
function loop(items, index, data, results) {
return utils.getPromise(function(resolve, reject) {
if (index === items.length) {
// Stop
resolve();
} else {
doAction(items[index], data).then(function(result) {
if (result) {
mergeResults(results, result)
} else {
loop(items, index + 1, data, results).then(resolve, reject);
}
}, reject);
}
});
}
function doAction(item, data) {
return utils.getPromise(function(resolve, reject) {
item.doIt(data).then(resolve, reject);
});
}
私は正しい道はすぐに約束を返し、その場で結果を追加することだと思うが、私はこれを行う方法を正確に知りません。助言がありますか?