【问题标题】:How to iterate multiple http request's and solve a promise until of end of loop?如何迭代多个http请求并解决一个promise直到循环结束?
【发布时间】:2021-09-09 22:49:51
【问题描述】:

我有一个请求循环,它在承诺中发送一个或多个图像并解决返回“真”布尔值¿问题?承诺在循环结束之前解决,并且请求就像“背景”我的问题是“如何等待循环结束以解决承诺”?我尝试使用 async await at promise 但不起作用

export const sendQuestionArray = (questionArr) => {
  return new Promise( async(resolve, reject) => {
    await questionArr.map((question) => {
      const formSend = new FormData()
      formSend.append('idAsignacion', question.question_id)
      formSend.append('pregunta', question.question)
      formSend.append('respuesta', question.value ? 'CUMPLE' : 'NO_CUMPLE')
      formSend.append('imagenes', JSON.stringify(question.photo))
      formSend.append('comments', question.comments)
      globalApi.post('/api-agv/audit/set_answer_audit', formSend)
    })
    resolve(true)
  })
}

感谢提问

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    您可以等待,直到每次迭代(每个问题)结束 POST 请求。 确保您的 globalApi.post 返回 Promise<any>

    export const sendQuestionArray = async questionArr => {
        for (const question of questionArr) {
            const formSend = new FormData()
            formSend.append('idAsignacion', question.question_id)
            formSend.append('pregunta', question.question)
            formSend.append('respuesta', question.value ? 'CUMPLE' : 'NO_CUMPLE')
            formSend.append('imagenes', JSON.stringify(question.photo))
            formSend.append('comments', question.comments)
            await globalApi.post('/api-agv/audit/set_answer_audit', formSend) // If 'post' method returns Promise
        }
        return true // will happen only after all requests
    }
    

    顺便说一句:你不需要同时使用Promise构造函数和async/await,async方法总是返回promise。

    如果您需要等到所有请求结束,只需使用 await 关键字调用 sendQuestionArray

    // elsewhere in code
    const result = await sendQuestionArray(questionArr)
    console.log(result) // 'true', printed only after request sequence  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-22
      • 1970-01-01
      • 2018-11-13
      相关资源
      最近更新 更多