如何并行执行两个异步函数,然后等待它们完成?

时间:2019-07-03 18:55:06

标签: javascript reactjs

我试图从两个不同的API中获取数据,并希望并行进行,但是我想等待它们执行,然后继续下一行代码。

axios

2 个答案:

答案 0 :(得分:2)

const promises = []
for(let request of requests){ promises.push(request) }

Promise.all(promises).then(res => /*res[0], res[1]*/) 

Promise.all仅在所有请求完成后才解决,然后按照传递的顺序在response数组中交付。

答案 1 :(得分:1)

我使用axios,它有axios.all()个用于多个请求,请看一下这些examples

  

执行多个并发请求   (链接中的代码)

function getUserAccount() {   
     return axios.get('/user/12345'); 
}

function getUserPermissions() {   
    return axios.get('/user/12345/permissions'); 
}

axios.all([getUserAccount(), getUserPermissions()])  
.then(axios.spread(function (acct, perms) {
    // Both requests are now complete   
}));