Javascript 在返回JSON之前执行所有axios调用

Javascript 在返回JSON之前执行所有axios调用,javascript,node.js,promise,axios,Javascript,Node.js,Promise,Axios,我正在创建一个API服务器,在其中,我需要为负值调用另一个API服务器上的convert方法。我相信我的代码是正确的,但是因为异步,我相信它在执行所有转换之前返回了值。代码如下: for(let i = 0; i < results.length; i++) { if (parseInt(results[i]['ACCOUNT_ID']) < 0) {

我正在创建一个API服务器,在其中,我需要为负值调用另一个API服务器上的convert方法。我相信我的代码是正确的,但是因为异步,我相信它在执行所有转换之前返回了值。代码如下:

                     for(let i = 0; i < results.length; i++) { 
                        if (parseInt(results[i]['ACCOUNT_ID']) < 0) {
                          let account = axios.get('http://localhost:54545/api?request=convert&id='+results[i]['ACCOUNT_ID'])
                            .then(function (response) {
                              results[i]['ACCOUNT_ID'] = response.data.stringId;console.log(response.data.stringId);
                            })
                            .catch(function (error) {
                              console.log(error);
                            });
                        }
                      }

                      res.setHeader('Content-Type', 'application/json');
                      return res.status(200).json(results);
for(设i=0;i
我想我需要使用Promise.all,但我不知道如何使用它。

任何帮助都将不胜感激,谢谢

你可以这样做

让arrayOfPromises=[];
对于(设i=0;i{
///在这里做事
})
.然后(()=>{
res.setHeader('Content-Type','application/json');
})
.catch(函数(错误){
console.log(错误);
});

返回res.status(200).json(结果)
您可以使用
axios.all
方法来解析所有承诺。下面是取自axios文档的示例,下面是链接

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
}));