Я не уверен, почему здесь отображается undefined при использовании Asyn c .forEachLimit - PullRequest
0 голосов
/ 30 марта 2020
async.forEachLimit(values,1,(item,valueCallBack)=>{
  async.waterfall([
    function(callback){
      /*beginTransaction*/
      callback(null)
    },
    function(callback){
      /*DB Update*/
      callback(null)
    },
    function(callback){
      /*DB delete*/
      callback(null)
    },
    function(callback){
      /*DB commit*/
      if(error) callback(error,result)
      else callback(null,result)
    }], (error, result) => {
      valueCallBack(error,result)
    })
  }, (error,result) {
    if(error) /* rollback function */
    else res.status(200).send(result); <-- result undefined!!!!!! :(
  })

Чтобы выполнить транзакцию синхронно, я пытался выполнить одну транзакцию за раз, используя 'forEachLimit' и 'водопад', но я не смог отправить ее с результатом, добавленным в ответ. Я не могу понять, почему он передается неопределенным в этот момент.

1 Ответ

0 голосов
/ 30 марта 2020

В последнем обратном вызове - /*DB commit*/ callback(null), вы позвонили next с ошибкой, равной нулю, и "результат" не определен. Давайте попробуем с callback(null, 100), вы получите 100 вместо undefined

...