promise.all的使用

Posted antyhouse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了promise.all的使用相关的知识,希望对你有一定的参考价值。

promise.all 主要是等所有的接口都调完,再进行下一步操作
例如,这里要等两个接口都请求回来,然后进行修改一个状态
methods里面的两个接口

// 获取仓库详情
      getWarehouseDetail() {
        const params = { id: this.id }
        return new Promise((resolve, reject) => {
          warehouseApi.warehouseManage.getById(params, (res) => {
            if (res.code === '0000') {
              this.warehouseDetail = res.data
              resolve()
            } else {
              this.$message.warning({ message: res.msg })
              reject()
            }
          })
        })
      },
      // 获取仓库库存详情
      getInventoryDetail() {
        return new Promise((resolve, reject) => {
          warehouseApi.inventory.queryInventory({ warehouseNo : this.warehouseNo }, (res) => {
            if (res.code === '0000') {
              this.isInventory = 1
              const data = res.data.data
              this.inventoryDetail = data && data.length && data[0] || {}
              resolve()
            } else {
              this.$message.warning({ message: res.msg })
            }
          })
        })
      }

watch里面的操作

   submitStatus (val) {
        if (val) {
          Promise.all([this.getWarehouseDetail(), this.getInventoryDetail()]).then(()=> {
            this.$store.commit('setStore', false)
          })
        }
      }

以上是关于promise.all的使用的主要内容,如果未能解决你的问题,请参考以下文章

如何使用并区分Promise.all和Promise.race?

(转载)理解和使用Promise.all和Promise.race

如何返回 Promise.all 获取 api json 数据?

Promise.all(...).spread 不是并行运行 Promise 时的函数

使用 Promise.all 避免唯一错误 E11000

Promise.all 的顺序执行