我在angular2 / typescript app中有一个函数列表,名为:f1
,f2
,f3
,f4
等...这些函数可以在任何订单,所有订单都返回无效。
我在考虑并行运行它们,但不知道如何使用目标ES5。
执行这些功能的最佳方法是什么?
感谢,
奥斯汀
答案 0 :(得分:2)
在浏览器中只有一个UI线程。如果您在UI线程中运行代码,则无法并行运行任何内容。
如果要并行运行代码,可以使用Web worker。 单个Web工作者也只是一个线程,如果要并行运行多个函数,则需要为每个函数添加一个新的Web工作器实例。
我不知道网络工作者支持的当前状态。
有关详细信息,请参阅示例
答案 1 :(得分:0)
由于您的所有功能都很可能是承诺而且您不关心输出或订单,只有所有功能都被执行我建议使用Promise.all()
:
Promise.all([f1(), f2(), f3(), f4(), f5()])
.then(_ => console.log('all completed'));
这将使承诺在后台运行,并且仅在所有完整报告回复给您时。