我遇到了如何解決並從鏈接承諾中傳回數據的問題。我正在使用節點js和request-promise。這是我的代碼解決循環中的承諾
start(name)
.then(firstFunction)
.then(secondFuntion)
.then(function(){
// i want to return data from secondfunction back
))
問題是在secondFunction我有一個for循環,進行各目標i從所以firstFunction,這是對象的數組得到的呼叫。我是否在每次迭代之後或者在所有迭代之後解決承諾。創建一個全局對象並保存結果並返回結果會更聰明嗎?我對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;
}
編輯
我理解了它!感謝所有幫助,我的第二個功能,我這樣做
var task = function(item){
// performed the task in here
}
var actions = data.map(task);
return Promise.all(actions);
非常感謝!我用你的建議 – inhaler