我使用request-promise
節點模塊如下:的NodeJS /請求承諾:承諾被自動解析
let rp = require('request-promise');
我有以下承諾鏈:
getData().then(data => {
return getUser(data);
})
.then(data => {
return getProfiles(data);
}).then(data => {
updateAddresses(data);
});
的updateAddresses
是如下:
function updateAddresses(data){
var promises = data.map((aProfile) => {
var options = {url:'http://example.com', method:'POST'};
return rp(options);
});
// Promise.all(promises).then(...);
}
所以我準備承諾(請求承諾)爲ea ch數組的元素。
問題是,即使我刪除Promise.all
,這些承諾也會觸發!
這怎麼可能?我怎樣才能使諾言不被解僱?
問候。
在updateAddresses中返回'Promise.all()'。 – zero298
我不確定我是否解釋了這個問題:在使用'Promise.all'之前,我想檢查代碼。我注意到承諾正在得到解決。我只是想將它們存儲在promise數組中。 – Dae
然後儲存選項,不要在它們上面調用'rp'直到你準備好。您仍然需要從'updateAddresses'返回一些內容,否則當範圍結束時'map()'將會丟失。 – zero298