Axios: 如何链接多个请求的示例?

创建于 2017-02-15  ·  12评论  ·  资料来源: axios/axios

当第一个请求的结果必须用于发出第二个请求等时,谁能指出我的示例或分享如何将多个请求链接在一起的代码片段?

最有用的评论

您可以将结果链接起来,因为它们是常规承诺:

axios.get(...)
  .then((response) => {
    return axios.get(...); // using response.data
  })
  .then((response) => {
    console.log('Response', response);
  });

所有12条评论

您可以将结果链接起来,因为它们是常规承诺:

axios.get(...)
  .then((response) => {
    return axios.get(...); // using response.data
  })
  .then((response) => {
    console.log('Response', response);
  });

在此示例中,即使请求成功, response也会返回未定义?

不,它应该被定义。 注意return声明。 你可能已经错过了。

啊啊啊啊

在这种情况下,您将如何捕捉个别错误?

我有一个循环(for)来发送 axios 帖子,我发现每个请求在每个循环之后都没有发送出去,他们在循环结束后一起发送了
这是我的代码

`
for (让 i = 0;i < 不同;i++) {
tem.start = moment(start).add(i, 'days').format('YYYY-MM-DD')
tem.end = moment(tem.start).endOf('day').format('YYYY-MM-DD 23:59:59')
tem.date = tem.start
// if (V.hasSameValue(title, tem.start, tem.end)) 继续
V.addEventsToCalendar(tem)
}
addEventsToCalendar: (事件) => {
axios.post(requestUrl('日历'), {...event})
.then(res => {
V.eventsRender(V.dataToEvent([res.data]))
成功提示()
})
.catch(错误提示)
},

`

@廖欢乐
for 是异步的,它不会等待每个操作结束。 您可以使用简单的递归来代替循环。

为什么不试试这个?

axios.get(...)
  .then((response) => {
    axios.get(...)
   .then((response) => {
      console.log('response);
    })
})

@alejogamboa又是一个回调地狱,你怎么看?

var array = [0,1,2];
axios.get('api/' + array[0]).then(response => {
    axios.get('api/' + array[1]).then(response => {
         axios.get('api/' + array[2]).then(response => {
            alert('done');
         });
    });
});

如何基于数组链接它?

@jericopulvera看看使用
axios.all([])

for (...) {
  arr.push(axios.get("url"));
}

let result = await axios.all(arr);
console.log(res);

已经在这里得到了解决方案#1413

此页面是否有帮助?
0 / 5 - 0 等级