Javascript 使用axios执行多个请求,而不等待所有请求在数组列表中完成?

Javascript 使用axios执行多个请求,而不等待所有请求在数组列表中完成?,javascript,node.js,axios,Javascript,Node.js,Axios,如何不等待所有请求完成,因为所有的完成需要太长的时间。如果任何请求完成,我会打印出来,这对用户来说会非常快。要运行每个承诺,只需在每个承诺或承诺中添加一个。然后()。所有,但是您将无法。映射以下数据: taskList.push( const data = { url: 'http://${requestUrl}?${argsString}', headers: { 'Content-Type': 'application/octe

如何不等待所有请求完成,因为所有的完成需要太长的时间。如果任何请求完成,我会打印出来,这对用户来说会非常快。

要运行每个承诺,只需在每个承诺或承诺中添加一个
。然后()
。所有
,但是您将无法
。映射
以下数据:

taskList.push(
    const data = {
        url: 'http://${requestUrl}?${argsString}',
        headers: {
            'Content-Type': 'application/octet-stream',
            Authorization: signature //,
            //'Content-Length': buffer.length
        },
        method: 'POST',
        data: buffer
    }
            return axios(data)
        )

try {
        const data = await Promise.all(taskList)
        const res = data.map(d => d.data)
        console.log(res)
        //ctx.state.data = res
    } catch (e) {
        console.log(e)
        throw e
    }
所以我建议按照这个模式,等待他们完成


如果花费的时间太长,可能的话,您应该尝试提高后端响应的性能。

要运行每个承诺,只需向每个承诺或承诺添加一个
。然后()
。所有
,但是您将无法
。映射
以下数据:

taskList.push(
    const data = {
        url: 'http://${requestUrl}?${argsString}',
        headers: {
            'Content-Type': 'application/octet-stream',
            Authorization: signature //,
            //'Content-Length': buffer.length
        },
        method: 'POST',
        data: buffer
    }
            return axios(data)
        )

try {
        const data = await Promise.all(taskList)
        const res = data.map(d => d.data)
        console.log(res)
        //ctx.state.data = res
    } catch (e) {
        console.log(e)
        throw e
    }
所以我建议按照这个模式,等待他们完成


如果花费的时间太长,如果可能的话,您应该尝试提高后端响应的性能。

如果每个响应都应该在完成后立即记录,则应该:

try {
    const data = Promise.all(taskList).then(() => console.log('finished'));
    // this will not wait to run, so data will be probably undefined
    const res = data.map(d => d.data)
    ...

如果每个响应都应在完成后立即记录,则应:

try {
    const data = Promise.all(taskList).then(() => console.log('finished'));
    // this will not wait to run, so data will be probably undefined
    const res = data.map(d => d.data)
    ...

无需使用Promise.all(),只需在每个请求中添加一个
then()
。很抱歉,我没有收到您的问题。@charlietfl的上述评论也是一个解决方案。您所做的是一次发出所有异步请求。将它们与自己的
then()
放在一起将使它们独立。无需使用Promise.all(),只需在每个请求中添加一个
then()
。很抱歉,我没有收到您的问题。@charlietfl的上述评论也是一个解决方案。您所做的是一次发出所有异步请求。将它们与自己的
then()
放在一起将使它们独立。
TypeError:data.map不是函数
,因为数据还没有值
TypeError:data.map不是函数
,因为数据还没有值