如何在typescript-es5中并行执行函数

时间:2017-01-20 03:47:48

标签: javascript promise

我在angular2 / typescript app中有一个函数列表,名为:f1f2f3f4等...这些函数可以在任何订单,所有订单都返回无效。

我在考虑并行运行它们,但不知道如何使用目标ES5。

执行这些功能的最佳方法是什么?

感谢,

奥斯汀

2 个答案:

答案 0 :(得分:2)

在浏览器中只有一个UI线程。如果您在UI线程中运行代码,则无法并行运行任何内容。

如果要并行运行代码,可以使用Web worker。 单个Web工作者也只是一个线程,如果要并行运行多个函数,则需要为每个函数添加一个新的Web工作器实例。

我不知道网络工作者支持的当前状态。

有关详细信息,请参阅示例

答案 1 :(得分:0)

由于您的所有功能都很可能是承诺而且您不关心输出或订单,只有所有功能都被执行我建议使用Promise.all()

Promise.all([f1(), f2(), f3(), f4(), f5()])
  .then(_ => console.log('all completed'));

这将使承诺在后台运行,并且仅在所有完整报告回复给您时。