私はlodash _.forEachループと_.forEachループを使用しています。私は複数の約束を使用しており、配列の約束を入れています。 sendEmailApiメソッドを使用して私はユーザーに電子メールを送信しています、私の要件は、私が外側の_.forEachループを終了したい場合は、すべての約束を処理したくありません。 次のコードは書かれてますが、私はNodejs foreachループブレイク(約束の結果を使用)
_.forEach(result, function (value, index) {
_.forEach(value, function (value1, index1) {
if(!displayName)
displayName = value1.displayname;
productList += '"' + value1.productplannames + '",';
});
tempJsonStr = '{"email":"' + index + '","displayname":"' + displayName + '","productplannames":[' + _.trim(productList, ",") + ']}';
console.log("tempJsonStr",tempJsonStr);
productList ="";
displayName="";
promises.push(emailUtils.sendEmailApiProcess(JSON.parse(tempJsonStr),responsePayLoad,task,done).then(function() {
}).catch(err => {
console.log("errrrrrrrrr");
return false;
}))
});
Promise.all(promises).then(function() {
console.log("All done");
});
'_.forEach()'ループは、電子メール要求のいずれかの前に終了:約束は/が拒否解決されるまで待機しますPromise.each、完了しました。 – Pointy
このような独自のJSONを構築しないでください - JSON.stringifyを使用して、約束の仕組みを学び、非同期コードの流れを学んでください - https://stackoverflow.com/questions/14220321/how-do-i-return-the-非同期呼び出しからの応答 –
あなたは 'productList'と' displayName'を本当に変なシーケンスで初期化しています – Bergi