我试图调用多个函数,如下所示。但是结果是不确定的...

let result='';
    for (let i = 0; i<req.body.length; i++){
         return result += function() {
            return axiosInstanceCost.post('/starter/cost', qs.stringify({
                'origin': req.body.origin[i],
                'weight': req.body.weight[i],
                'destination': req.body.destination[i],
                'courier': req.body.courier[i]
             }))
        };
    }

    axios.all(result)
        .then(axios.spread(function(response){
            console.log(response);

        }))
        .catch(function(error){
            console.log(error)
        })


请告诉我正确的代码。非常感谢。

最佳答案

我认为您正在尝试创建一个promise数组,并在所有promise都解决时做一些事情……

const result = [];
for (let i = 0; i < req.body.length; i++) {
  result.push(
    axiosInstanceCost.post('/starter/cost', qs.stringify({
      'origin': req.body.origin[i],
      'weight': req.body.weight[i],
      'destination': req.body.destination[i],
      'courier': req.body.courier[i]
    })));
}

axios.all(result)
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error)
  })

关于javascript - 如何循环调用多个函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61092538/

10-09 01:26