繁体   English   中英

jQuery / Javascript函数执行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM