Подсчет совпадений с использованием асинхронного выполнения

#javascript #arrays #key

#язык JavaScript #массивы #Клавиша

Вопрос:

Ниже я написал функцию, которая использует массив и ключ для поиска и подсчета количества совпадений ключа с элементом в массиве (параллельно). Я пытаюсь изменить свою функцию, чтобы асинхронно подсчитывать количество совпадений, но не знаю, как лучше всего это сделать. Любое понимание или примеры будут высоко оценены.

Мой Код:

 function countMatches(arr, key, done)  {  const threads = 4;  const pool = new StaticPool({  size: threads,  task: function (a)   {  let m = 0;  for (let i = 0; i lt; a.length; i  ) {  if (a[i] == this.workerData) m  ;  }  return m;  },  workerData: key  });   const size = arr.length / threads;   let res = 0, finished = 0;  for (let i = 0; i lt; threads; i  )   {  (async () =gt;   {  let r = await pool.exec(arr.slice(i * size, (i   1) * size));  console.log("Result: "   r);  res  = r;  finished  ;  if (finished == threads)   {  done(res);  pool.destroy();  }  })();  } }  

Комментарии:

1. войди res в свою ЖИЗНЬ (async (res)=gt; {...})(res);