我正在使用lodash _.forEach循环和内部_.forEach循环我正在使用多个承诺,并把数组承诺。使用sendEmailApi方法我发送电子邮件给用户,我的要求是如果我从我想从外部_.forEach循环退出任何错误,不想处理所有的承诺。下面 编写的代码,但不能正常工作,它的处理整个_.forEach循环,如果我在循环的中间Nodejs foreach使用promises循环中断结果
_.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()'循环之前的任何电子邮件请求完成已完成。 – Pointy
不要像这样建立自己的JSON--使用JSON.stringify,学习promise如何工作,学习如何异步代码流 - 读取https://stackoverflow.com/questions/14220321/how-do-i-return-the-响应来自安 - 异步调用 –
您初始化'productList'和'displayName'在一个非常奇怪的序列 – Bergi