我想同时对数组中的所有元素应用一个函数,我不想一个接一个地应用它。这是因为我有很多元素,并且希望同时在Canvas中绘制它们。我正在使用Angular 6。
我有这个:
drawRow(row: Node[]) {
row.forEach((item) => {
this.addToCanvas(item);
});
}
我想并行添加行的所有元素。 是否需要安装一些库才能执行此操作,或者仅使用纯JavaScript即可执行此操作...? 正确的方法是什么?
先谢谢您=)
答案 0 :(得分:0)
就像注释中提到的Pointy一样,javascript大多是单踩的。
如果由于画布较大而发现延迟,则可以承诺addToCanvas
。
它会做的是将来推迟这些功能的调用,从而允许页面在每次调用之间进行交互。
如果在调用所有“ addToCanvas”之后必须执行某些操作,则可以使用
Promise.all()
要进行真正的并行工作,您需要使用WebWorker,但是这些有局限性。他们无权访问DOM,只能与异步消息API进行交互。 根据您的需要,它可能是一个解决方案。如果您要在后台进行长时间的计算,这将很有用。