jQuery/Javascript函数执行
我有3个函数func1()、func2()和func3()。它们相互独立。我想用一个回调方法并行执行这3个方法。有可能是这样的吗jQuery/Javascript函数执行,javascript,jquery,Javascript,Jquery,我有3个函数func1()、func2()和func3()。它们相互独立。我想用一个回调方法并行执行这3个方法。有可能是这样的吗 function parentMethod(){ call ([func1(),func2(), func3()],<callback function>); } 函数parentMethod(){ 调用([func1(),func2(),func3()],); } 回调功能是可选的,但这3个功能可以并行执行。使用承诺链 使用承诺链 除了给出的承诺答
function parentMethod(){
call ([func1(),func2(), func3()],<callback function>);
}
函数parentMethod(){
调用([func1(),func2(),func3()],);
}
回调功能是可选的,但这3个功能可以并行执行。使用承诺链
使用承诺链
除了给出的承诺答案之外,如果函数尚未返回承诺,则需要“承诺”函数(此演示假定在第一次回调时出错):
除了给出的承诺答案之外,如果函数尚未返回承诺,则需要“承诺”函数(此演示假定在第一次回调时出错):
您也可以使用web workers,但这将是一个更详细的解决方案。您可以查看此帖子:您也可以使用web workers,但这将是一个更详细的解决方案。您可以查看此帖子:为什么不直接在
parentMethod()中运行函数呢?它们是异步函数吗?为什么不直接在parentMethod()
中运行这些函数呢?它们是异步函数吗?谢谢。只是想确认一下,这是ES6的一部分吗?没错,如果你还不能使用ES6的话,这里有垫片,或者你可以使用transpile,但我保证。所有这些都让我的生活变得更轻松了,最好能使用它,但IE不支持Promise。附近有工作吗?如果没有,那么我会用巴别塔。A可以帮你解决这个问题。只是想确认一下,这是ES6的一部分吗?没错,如果你还不能使用ES6的话,这里有垫片,或者你可以使用transpile,但我保证。所有这些都让我的生活变得更轻松了,最好能使用它,但IE不支持Promise。附近有工作吗?如果没有,那么我将使用巴别塔在这种情况下。A可以为您解决这个问题
Promise.all([func1, func2, func3]).then(values => {
//values from all the functions are in the callback param
});
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);
});