我想同时对数组中的所有元素应用一个函数,我不想一个一个地应用它,我的意思是顺序应用。这是因为我有一大堆元素,我想同时在 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/