【发布时间】:2020-09-20 19:27:46
【问题描述】:
我正在尝试使用 api,我必须为列表中的每个项目发送请求。 但是,我看到循环似乎并没有等待每个请求,即循环没有按预期工作。下面是代码
getInfo = async () => {
const mylist = ["item1","item2","item3","item4","item5","item6","item7"]
const responses = []
const len = mylist.length
for (let i = 0; i < len; i++) {
//console.log("inside loop")
await axios.get("some_url/"+mylist[i])
.then(res => {
responses.push(res.data)
})
}
当我运行程序时,所有console.log("inside loop") 立即执行,无需等待请求完成。
如何修改代码,以便在更新 for 循环计数器变量之前等待每个响应完成?
【问题讨论】:
-
使用
async await语法时,不需要添加then部分。您可以将console.log放在 await 语句之后。const res = await axios.get() -
.then()的用法有点奇怪(cons res = await …; responses.push(res.data)会更惯用),但它应该可以按预期工作。这是您的实际代码吗?
标签: javascript