如何写一个异步?

时间:2019-04-16 02:47:18

标签: javascript

我正在编写一些代码,我意识到我有一个具有100000+个位置的数组,我必须遍历该数组的所有位置。但是,我也意识到我可以“并行化”。现在的问题是,有什么方法可以并行化默认值。

<options xmlns="xdmp:http-get"> <format xmlns="xdmp:document-get">xml</format> </options>

2 个答案:

答案 0 :(得分:1)

我会说,不是使循环并行,而是使每个循环中的代码执行并行。这是一个异步循环函数,可并行执行回调函数。

/**
 * @param {Array}  arr: Array of items to loop over
 * @param {Function} cb: Callback function which needs to be executed per item
 * @returns Promise object which will be resolved once all the items have been executed
 */
function asyncFor(arr, cb) {
  const asyncCB = (item) => new Promise(resolve => resolve(cb(item)));
  return Promise.all(arr.map(item => asyncCB(item)));
}

答案 1 :(得分:0)

类似于java8 +中的并行流? 创建工作人员池,将呼叫路由到其他工作人员,收集结果,然后继续。