Kim*_* BF 7 javascript typescript
我想同时将一个函数应用于数组中的所有元素,我不想一个一个地应用它,我的意思是顺序地应用它。这是因为我有很多元素,我想同时在画布上绘制它们。我正在使用 Angular 6。
我有这个:
drawRow(row: Node[]) {
row.forEach((item) => {
this.addToCanvas(item);
});
}
Run Code Online (Sandbox Code Playgroud)
我想将行的所有元素并行添加到画布中。是否需要安装一些库来执行此操作,或者我可以仅使用纯 javascript 来执行此操作...?正确的做法是什么?
预先感谢您=)
就像评论中提到的 Pointy 一样,javascript 大多是单线程的。
如果您发现由于画布很大而出现滞后,您可以承诺addToCanvas。它将做的是推迟将来对这些函数的调用,从而允许页面在每次调用之间进行交互。
如果您必须在调用所有“addToCanvas”后执行某些操作,您可以使用
Promise.all()
要进行真正的并行工作,您需要使用 WebWorker,但这些都有局限性。它们无权访问 DOM,只能与异步消息 API 进行交互。根据您的需要,这可能是一个解决方案。如果您想在后台进行长时间计算,它会很有用。
| 归档时间: |
|
| 查看次数: |
19708 次 |
| 最近记录: |