我正在编写一些代码,我意识到我有一个具有100000+个位置的数组,我必须遍历该数组的所有位置。但是,我也意识到我可以“并行化”。现在的问题是,有什么方法可以并行化默认值。
<options xmlns="xdmp:http-get">
<format xmlns="xdmp:document-get">xml</format>
</options>
答案 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 +中的并行流? 创建工作人员池,将呼叫路由到其他工作人员,收集结果,然后继续。