多个异步呼叫?

时间:2019-05-19 05:23:36

标签: javascript async-await axios mobx-state-tree

我正在使用异步/等待。我想知道如何并行执行多个异步调用?

我愿意

async method(){
   call1();
   call2();
}

至少从调试器看来,它一次要调用一个。

我不确定是否由于我正在使用mobx状态树“流”功能而在call2完成之前是否阻止call1的发生。

call1: flow(function*() {
    const response = yield axios.post()
}),

2 个答案:

答案 0 :(得分:1)

您可以尝试async.js并行方法。这也将减轻处理不同呼叫数据的负担。它将执行相同的操作:

async.parallel([
    //different async calls you can add as many you want
    function(callback) {
        setTimeout(function() {
            callback(null, 'one');
        }, 200);
    },
    function(callback) {
        setTimeout(function() {
            callback(null, 'two');
        }, 100);
    }
],
// optional callback
function(err, results) {
    // the results array will equal ['one','two'] even though
    // the second function had a shorter timeout.
});

答案 1 :(得分:0)

使用Promise.all

async method() {
   return await Promise.all([
       call1()
       call2()
   ])
}