[英]jQuery / Javascript function execution
我有3个函数func1(),func2()和func3()。 它们彼此独立。 我想用一个回调方法并行执行这3个方法。 是否有可能这样
function parentMethod(){
call ([func1(),func2(), func3()],<callback function>);
}
回调功能是可选的,但是这三个功能可以并行执行。
在Promise.all
使用承诺链
Promise.all([func1, func2, func3]).then(values => {
//values from all the functions are in the callback param
});
除了给出的promise答案外,如果函数还没有返回promise,则您需要“ promisify”您的函数(此演示假定错误优先回调):
let promises = [func1, func2, func3].map(func => {
return new Promise((resolve, reject) => {
func((err, data) => {
if (err) {
reject(err);
} else {
resolve(data);
}
})
});
});
Promise.all(promises)
.then((results) => {
let [func1Data, func2Data, func3Data] = results;
})
.catch(err => {
console.log('error!', err);
});
您也可以使用网络工作者,但这将是更详细的解决方案。 您可以查看此帖子: HTML5 / JS-启动多个Webworkers
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.