为什么 async.forEach 回调永远不会被调用?
Why async.forEach callback is never getting called?
在下面的代码中,我使用 forEach
并在其中迭代一个数组,在 forEach 中我调用另一个函数,同时将参数作为 callback
传递,现在事情甚至我从函数调用这个回调,forEach
回调永远不会被调用
async.forEach(Array_Ids, function (item, callback){
sendPushNotif(item.mess, item.Ids, callback);
}, function(err) {
// EXECUTION NEVER COMING HERE
if(err) {
res.json({status_code : 200, message : "Correctly Hit the URL!"});
return next();
} else {
res.json({status_code : 200, message : "Correctly Hit the URL!"});
return next();
}
});
function sendPushNotif(mess, Ids, callback) {
sender.send(mess, { registrationTokens: Ids }, function(err, result) {
if(err) {
callback(null);
}
else {
console.log(null);
}
});
}
您只能在此处有条件地调用 callback()
:
function(err, result) {
if(err) {
callback(null);
}
else {
console.log(null);
}
}
如果要抑制错误,可以将if
/else
替换为
callback(null);
如果要传播错误,可以将整个 function
表达式替换为
callback
在下面的代码中,我使用 forEach
并在其中迭代一个数组,在 forEach 中我调用另一个函数,同时将参数作为 callback
传递,现在事情甚至我从函数调用这个回调,forEach
回调永远不会被调用
async.forEach(Array_Ids, function (item, callback){
sendPushNotif(item.mess, item.Ids, callback);
}, function(err) {
// EXECUTION NEVER COMING HERE
if(err) {
res.json({status_code : 200, message : "Correctly Hit the URL!"});
return next();
} else {
res.json({status_code : 200, message : "Correctly Hit the URL!"});
return next();
}
});
function sendPushNotif(mess, Ids, callback) {
sender.send(mess, { registrationTokens: Ids }, function(err, result) {
if(err) {
callback(null);
}
else {
console.log(null);
}
});
}
您只能在此处有条件地调用 callback()
:
function(err, result) {
if(err) {
callback(null);
}
else {
console.log(null);
}
}
如果要抑制错误,可以将if
/else
替换为
callback(null);
如果要传播错误,可以将整个 function
表达式替换为
callback