当第一个请求的结果必须用于发出第二个请求等时,谁能指出我的示例或分享如何将多个请求链接在一起的代码片段?
您可以将结果链接起来,因为它们是常规承诺:
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
最有用的评论
您可以将结果链接起来,因为它们是常规承诺: