[英]How to make a Promise.all with several request
我正在尝试通过我拥有的汽车列表 go 来生成request
。 我想将这些生成的请求存储在列表中,但不执行它们,甚至稍后将其传递给axios.all
但我得到的错误是在将请求存储在列表中时它们被执行。
const axios = require("axios")
let requests = []
cars.forEach(car => requests.push(requestUpdateStatus(car)))
axios.all(requests).then(result => console.log(result)).catch(error => console.log(error))
function requestUpdateStatus(car) {
return new Promise((resolve, reject) => {
let jsonResponse = JSON.stringify({
model: car.model,
year: car.year
})
axios.post('http://???/update-status', jsonResponse, { timeout: 50000 })
.then(response => {
resolve("HELLO")
}).catch(error => {
reject("*** ERROR ***")
})
})
}
您需要返回Promise
:
function requestUpdateStatus(car) {
let jsonResponse = JSON.stringify({
model: car.model,
year: car.year
})
return axios.post('http://???/update-status', jsonResponse, { timeout: 3000 })
.then(response => {
console.log("HELLO")
}).catch(error => {
console.log("*** ERROR ***")
})
}
否则,它看起来不错。
您没有从 requestUpdateStatus 返回 promise,因此没有任何内容被推入 requests 数组来解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.