Синхронный код внутри цикла async.each () выполняется последовательно или параллельно? - PullRequest
0 голосов
/ 17 января 2019

Если я использую async.each () в файле node.js, выполняется ли синхронный код последовательно или параллельно на одну итерацию?

В качестве примера я зацикливаю массив с числами и помещаю числа в новый массив, если новый массив не содержит повторяемого числа:

const async = require('async');

const arr = [1, 2, 3, 3, 4];
const newArr = [];

async.each(arr, (nr, nrCB) => {
  if (newArr.indexOf(nr) === -1) {
    newArr.push(nr);
    callToAsyncFunction(() => {
      nrCB();
    });
  } else {
    nrCB();
  }
}, () => {
  console.log(newArr);
});

Есть ли способ, которым newArr может закончиться двумя 3: s, потому что if (newArr.indexOf(nr) === -1) выполняется параллельно до того, как любой из 3: s был помещен в newArr?

...