Почему обратный вызов async.forEach никогда не вызывается? - PullRequest
0 голосов
/ 02 июня 2018

В приведенном ниже коде я использую 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 голосов
/ 02 июня 2018

Здесь вы можете вызвать только callback() условно:

function(err, result) {
  if(err) {
    callback(null);
  }
  else {
    console.log(null);
  }
}

Если вы хотите подавить ошибки, вы можете заменить if / else на

callback(null);

Еслиесли вы хотите распространять ошибки, вы можете заменить все выражение function на

callback
...