連鎖した約束からデータを解決して返す方法に問題があります。私は、ノードjsを使用しています。要求約束です。ここに私のコードはループ内で約束を解決する
start(name)
.then(firstFunction)
.then(secondFuntion)
.then(function(){
// i want to return data from secondfunction back
))
ある問題は私がオブジェクトの配列であるfirstFunction、から得た各オブジェクトの呼び出しを実行するループを持つsecondFunctionです。各反復の後、またはすべての反復の後に約束を解決しますか?グローバルオブジェクトを作成してその結果を保存し、その結果を返す方が賢明でしょうか? secondFunctionのための私のコードは、私はそれを考え出したこの
var secondFunction = function(data){
var promise = new Promise(function(){
for(var i= 0; i <data.length; i ++){
options = { url: "", jason: true}
rp.(options)
.then(function(resp){
// i do something with respose and need to save this
//should i resolve the promise here??
})
.catch(function(err){
});
}
});
return promise;
}
EDIT
のように見えます!おかげですべての助けのために、私の第二の機能では、私はあなたがして、配列内の各アイテムの非同期アクションを実行するための通常のパターンは、約束を返す関数にアクションを作ることです。この
var task = function(item){
// performed the task in here
}
var actions = data.map(task);
return Promise.all(actions);
ありがとう!私はあなたの提案を使用した – inhaler