forEach在Javascript中并行?

时间:2018-08-15 18:27:38

标签: javascript typescript

我想同时对数组中的所有元素应用一个函数,我不想一个接一个地应用它。这是因为我有很多元素,并且希望同时在Canvas中绘制它们。我正在使用Angular 6。

我有这个:

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

我想并行添加行的所有元素。 是否需要安装一些库才能执行此操作,或者仅使用纯JavaScript即可执行此操作...? 正确的方法是什么?

先谢谢您=)

1 个答案:

答案 0 :(得分:0)

就像注释中提到的Pointy一样,javascript大多是单踩的。

如果由于画布较大而发现延迟,则可以承诺addToCanvas。 它会做的是将来推迟这些功能的调用,从而允许页面在每次调用之间进行交互。

如果在调用所有“ addToCanvas”之后必须执行某些操作,则可以使用 Promise.all()

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