为什么async.forEach回调永远不会被调用?

时间:2018-06-01 22:31:59

标签: javascript node.js callback async.js

在下面的代码中,我正在使用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);
    }
});

}

1 个答案:

答案 0 :(得分:1)

您只能在此有条件地调用EHK_list <- c("C1orf43", "CHMP2A", "GPI", "PSMB2", "PSMB4", "RAB7A", "REEP5", "SNRPD3", "VCP", "VPS29") EHK_minimum <- data_frame("hugo_name" = EHK_list, "expression" = c(2.3697, 3.4964, 2.0620, 2.1240, 4.3081, 8.3988, 1.4969, -0.0066, 2.5436, 5.2886)) DF <- read.table(text = "sample_ID hugo_name expression 1: Sample1 RAB7A 1382.78 2: Sample1 C1orf43 11.78 3: Sample1 CHMP2A 75.5 11: Sample2 RAB7A 33.3 12: Sample2 C1orf43 12.1 13: Sample2 CHMP2A 1500 21: Sample3 RAB7A 66 22: Sample3 C1orf43 1 23: Sample3 CHMP2A 19", header = TRUE, stringsAsFactors = FALSE)

callback()

如果您想要取消错误,可以将function(err, result) { if(err) { callback(null); } else { console.log(null); } } / if替换为

else

如果要传播错误,可以用

替换整个callback(null); 表达式
function