2015-06-03 4 views
0
var myFunction = function (param1,cb) { 
    async.series([ 
     function(callback) { 
      func1(param1,callback);//An error occurred here. I pass error to callback. 
     }, 
     function(callback) { 
      func2(param1,callback); 
     }, 
     function(callback) { 
      func3(callback); 
     } 
    ],function(err, results) { //Its called immediately when error occurred in any of the above function, but the remaining function also keeps on executing in parallel. 
     if (typeof cb === "function") { 
      cb(err,results); 
     } 
}); 
}; 

Если во время func1 произошла ошибка, я передаю сообщение об ошибке.async.series не работает должным образом. Node.js

Обратный вызов async.series, вызываемый немедленно при возникновении ошибки в любой из вышеперечисленных функций, но оставшаяся функция также продолжает выполняться параллельно.

Я не хочу, чтобы другие функции выполнялись, если какая-либо ошибка произошла.

+1

Вы уверены, что ваш callback в func1 или func2 не вызывается дважды? –

+0

спасибо, это была ошибка. – manish

+0

Я не возвращал обратный вызов. Я просто звонил. Виноват. – manish

ответ

0

Думаю, вам нужно использовать водопад для ожидаемого результата.

var myFunction = function (param1,cb) { 
async.waterfall([ 
    function(callback) { 
      callback(param1); 
     } 
    function(param1 ,callback) { 
     callback(param1); 
    }, 
    function(param1 , callback) { 

     callback(null, 'result'); 
    } 
], function (err, result) { 
    if (typeof cb === "function") { 
      cb(err,results); 
     } 
}); 
} 
Смежные вопросы