Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery/Javascript函数执行_Javascript_Jquery - Fatal编程技术网

jQuery/Javascript函数执行

jQuery/Javascript函数执行,javascript,jquery,Javascript,Jquery,我有3个函数func1()、func2()和func3()。它们相互独立。我想用一个回调方法并行执行这3个方法。有可能是这样的吗 function parentMethod(){ call ([func1(),func2(), func3()],<callback function>); } 函数parentMethod(){ 调用([func1(),func2(),func3()],); } 回调功能是可选的,但这3个功能可以并行执行。使用承诺链 使用承诺链 除了给出的承诺答

我有3个函数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);
    });