【发布时间】:2018-07-05 22:21:28
【问题描述】:
我有一个异步函数,它在继续之前等待 axios 调用完成。问题是我需要将 axios 调用的超时设置为半秒,这样我就不会达到 shopify API 调用限制。
async function processMatchingSchools(customer_metafield_url) {
for (const item of customer_metafield_url) {
await axios.get(item).then((res) => {
for (key in res.data.metafields) {
if (res.data.metafields[key].value === schoolName) {
id_for_each_student.push(shopifyAdmin + "/customers/" + res.data.metafields[key].owner_id + "/metafields.json")
}
}
})
}
console.log("Customer metafields to search", id_for_each_student)
processOwnerIds(id_for_each_student)
}
当我尝试设置 setTimeout 时,它会调用 setTimeout 并在完成 axios 调用之前继续前进。
async function processMatchingSchools(customer_metafield_url) {
for (const item of customer_metafield_url) {
await setTimeout(function(item) {
axios.get(item).then((res) => {
for (key in res.data.metafields) {
if (res.data.metafields[key].value === schoolName) {
id_for_each_student.push(shopifyAdmin + "/customers/" + res.data.metafields[key].owner_id + "/metafields.json")
}
}
})
}, 500)
}
console.log("Customer metafields to search", id_for_each_student)
processOwnerIds(id_for_each_student)
}
有什么帮助吗?
【问题讨论】:
-
好吧,setTimeout 不是基于承诺的,所以尝试等待它有点奇怪。
标签: javascript asynchronous async-await settimeout axios