js中for循环多次请求,返回数据不按照顺序返回的处理

js中for循环多次请求,返回数据不按照顺序的处理

//根据使用场景按需处理    
//先把所有请求返回的数据使用new Promise来异步处理,把返回来的数据按照顺序存放在一个atemp数组中
        const atemp = []
        for (let i = 0; i < 7; i++) {
          atemp.push(
            // 使用Promise用于异步计算
            new Promise((resolve, reject) => {
                //queryList[i]是请求参数
              pageFindJobOrder(queryList[i]).then(res => {
                return resolve(res)
              }).catch(err => {
                return reject(err)
              })
            })
          )
        }
        // 使用Promise.all把所有请求数据atemp数组拿到之后,一起进行处理
		//使用方法大致如此,思路大概这样,根据个人返回来数据按需处理,我这里的数据没有截取全
        Promise.all(atemp).then(res => {
          res.forEach((ele, i) => {
            let count = 0
            ele.data.data.forEach(ele => {
              if (ele.status === 'FINISH') {
                count++
              }
            })
            this.planNum.push(ele.data.total)
            lineChartData.order.expectedData = this.planNum
            this.actualNum.push(count)
            lineChartData.order.actualData = this.actualNum
          })
        }).catch(err => {
          console.log('error', err)
        })

你可能感兴趣的:(JavaScript)