繁体   English   中英

如何通过几个请求制作 Promise.all

[英]How to make a Promise.all with several request

我正在尝试通过我拥有的汽车列表 go 来生成request 我想将这些生成的请求存储在列表中,但不执行它们,甚至稍后将其传递给axios.all但我得到的错误是在将请求存储在列表中时它们被执行。

axios模块

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM