javascript - forEach 在 Javascript 中并行?

标签 javascript typescript

我想同时对数组中的所有元素应用一个函数,我不想一个一个地应用它,我的意思是顺序应用。这是因为我有一大堆元素,我想同时在 Canvas 中绘制它们。我正在使用 Angular 6。

我有这个:

 drawRow(row: Node[]) {
    row.forEach((item) => {
      this.addToCanvas(item);
    });
 }

我想将行中的所有元素并行添加到 Canvas 中。 是否需要安装一些库来执行此操作,或者我可以仅使用纯 javascript 来执行此操作...? 正确的做法是什么?

提前谢谢你 =)

最佳答案

就像评论中提到的 Pointy,javascript 大多是单线程的。

如果因为 Canvas 很大而发现延迟,您可以 promise addToCanvas。 它将做的是推迟这些函数在未来的调用,允许页面在每次调用之间进行交互。

如果在所有“addToCanvas”被调用后你必须做一些事情,你可以使用 Promise.all()

要进行真正的并行工作,您需要使用 WebWorker,但它们有局限性。它们无权访问 DOM,只能与异步消息 API 进行交互。 根据您的需要,它可能是一个解决方案。如果您想在后台进行长时间的计算,这将很有用。

关于javascript - forEach 在 Javascript 中并行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51864392/

相关文章:

javascript - 使用javascript重新加载iframe时将变量传递给jsp

javascript - 使用 hasOwnProperty 释放脚本

javascript - 使用 ngRoute 处理 AngularJS 错误

typescript - 使用 webpack 和 typescript 导入无法识别 react 中的图像模块

javascript - Angular2 + Cordova + 条码扫描仪插件 : Android behavior

typescript - 导入 google-cloud/storage 时无法调用类型缺少调用签名的表达式

java - Spring 和 ExtJS "400 Bad Request"使用 PUT 但不使用 POST

typescript - 如何声明具有相同主体的 2 个接口(interface)?

visual-studio - Visual Studio 2015 - typescript "Build:Cannot find module..."

javascript - 为 DataTables aoColumnDefs 创建 JavaScript 数组(JSON 格式)