ForEachMethod also accepts a callback when done. Therefore, your code should look like this:
var a1 = [1,2,3,4,5,6,7,8]; async.forEachSeries(a1, function(n1, callback_s1) { console.log(n1); var a2 = [10,11,12,13,14]; async.forEachSeries(a2, function(n2, callback_s2) { console.log(n1 + " " + n2); callback_s2(); }, function () { callback_s1(); } ); });
The problem with your code is that you assume that async.forEachSeries is synchronous, but it is not. This ensures that the array is processed synchronously, but the function itself is asynchronous.
source share