Несколько асинхронных вызовов? - PullRequest
0 голосов
/ 19 мая 2019

Я использую async / await. Мне интересно, как я могу сделать несколько асинхронных вызовов все параллельно?

я делаю

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

как кажется, по крайней мере, отладчик вызывает по одному.

Я не уверен, если я использую функцию «потока» дерева состояний mobx, если это может блокировать call2 до тех пор, пока call1 не будет сделано.

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

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

Использование Promise.all:

async method() {
   return await Promise.all([
       call1()
       call2()
   ])
}
0 голосов
/ 19 мая 2019

Вы можете попробовать 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.
});
...