专业的编程技术博客社区

网站首页 > 博客文章 正文

Promise.all 多任务场景(等待任务全部完成后再执行后续操作)

baijin 2024-08-14 11:57:19 博客文章 9 ℃ 0 评论
      saveHandler() {
        this.$refs['dataForm'].validate((valid) => {
          if (valid) {
            // 将最新数据push到dataList
            if (this.action === 'edit' || this.action === 'show') {
              //在指定位置添加元素,第一个参数指定位置,第二个参数指定要删除的元素,如果为0,则追加
              this.dataList.splice(this.dataForm.index, 0, this.dataForm);
              this.$emit('finish', commonUtil.deepClone(this.dataList))
              this.resetForm()
            } else {
              let nameArr = this.dataForm.name.split(',')
              let itcodeArr = this.dataForm.itcode.split(',')
              let dataTasks = []
              for (let i = 0; i < nameArr.length; i++) {
                let packageDataForm = this.packageDataForm(itcodeArr[i], nameArr[i]);
                dataTasks.push(packageDataForm)
              }
              Promise.all(dataTasks).then(res => {
                this.dataList = this.dataList.concat(res)
                this.$emit('finish', commonUtil.deepClone(this.dataList))
                this.resetForm()
              })
            }
          }
        });
      },
      async packageDataForm(itcode, name) {
        let pernr = '';
        let dataForm = {}
        // 发起http请求
        await kpi.getPernrByItcode(itcode).then(({data}) => {
          pernr = data.msg
          dataForm = {
            id: '',
            pernr,
            itcode,
            name,
          }
        })
        return dataForm
      },

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表