【发布时间】:2019-08-22 16:50:39
【问题描述】:
如何发送多个 API 请求?所以我下面有这段代码
const productID= [12, 43, 65, 87, 45, 76, 87];
productID.map(id => {
API.removeItem(id, (err, response) => {
if (response.status === 'success') {
console.log('remove a product');
}else {
console.log(err);
}
})
})
问题在于它不会等待第一个 API 请求完成并获取响应,而只会删除一个项目。所以基本上我希望它变得同步,这就是为什么我使用 async await 来解决我的问题。
async function removeProducts() {
const productID = [12, 43, 65, 87, 45, 76, 87];
const result = await Promise.all(productID.map(id => {
API.removeItem(id, (err, response) => {
if (response.status === 'success') {
console.log('remove a product');
}else {
console.log(err);
}
});
}));
}
这个结果与第一个代码 sn-p 几乎相同,但这次它能够删除 2 个产品项目。我希望仅在前一个请求完成时才发出下一个请求。我该怎么做?
【问题讨论】:
标签: javascript ajax promise async-await