これはコードの下にありますが、widgetsAddCallが配列に追加されるとすぐに実行され、promise.eachは使用されません。Bluebird async series call
機能widgetsAddCallがAPIサーバーに対して非同期要求を行い、ブルーバードの承認済みリクエストを返します。私はそのAPI呼び出しが次々に行われ、各呼び出しが次々とデータのチャンクを送信するようにしたい。
var chunkCnt = Math.ceil(widgetsIds.length/4000);
var responseT = Array();
var Promise = require('bluebird');
for(var cntTemp =0 ; cntTemp<chunkCnt;cntTemp++){
var tempWidgs = widgetsIds.slice(cntTemp,cntTemp+4000);
var query = {
id: tempWidgs.join(',')
};
responseT.push(widgetsAddCall(tempWidgs,query,campRemoteId,campaign));
}
return Promise.each(responseT,function(responses) {
// Use the responses here
return getWidgets(campRemoteId,campaign).then((ids) => {
var toRemove = [];
for(var id of ids){
if(widgetsIds.indexOf(id)===-1){
toRemove.push(id);
}
}
if(toRemove.length) {
return removeWidgets(campaign, campRemoteId, toRemove);
}
});
})
ありがとう、ちょっと入力してくださいPromise.mapSeries –
@SanketMehta - あなたの質問に答えてくれるかもしれないので、受け入れ。これはまた、適切な手順に従うためにいくつかの評判ポイントを得るでしょう。 – jfriend00