收藏
回答

这里Promise.all后面的then为什么没有执行?

//index.js
  getData01function () {
    return new Promise(() => {
      db.collection("question").where({
        _openid'{openid}'
      }).get().then((res) => {
        console.log('a')
      }).catch((err)=>{
        console.log(err)
      })
    })
  },
  getData02function () {
    return new Promise(() => {
      db.collection("question").where({
        _openid'{openid}'
      }).get().then((res) => {
        console.log('b')
      }).catch((err)=>{
        console.log(err)
      })
    })
  },
  getData03function () {
    return new Promise(() => {
      db.collection("question").where({
        _openid'{openid}'
      }).get().then((res) => {
        console.log('c')
      }).catch((err)=>{
        console.log(err)
      })
    })
  },

  onLoadfunction () {
    Promise.all([this.getData01(), this.getData02(), this.getData03()])
    .then(function() {
      console.log('成功')
    }).catch((err)=>{
      console.log(err)
    })
  },


结果只要a,b,c。如图 ↓

最后一次编辑于  2022-04-07
回答关注问题邀请回答
收藏

2 个回答

  • brave
    brave
    2022-04-07
    getData01、getData02、getData03  你都没有resolve或者reject结果,当你三个promise都resolve或者reject了,就会执行then或者catch
    Ps: 三个都resolve => 执行then,三个有一个reject → 执行catch
    
    2022-04-07
    有用 3
    回复 1
    • noritake
      noritake
      2022-04-07
      改成这样是正确的吗?
      2022-04-07
      回复
  • 老张
    老张
    2022-04-07
    Promise.all([
    db.collection().get(),
    db.collection().get(),
    db.collection().get(),
    ]).then()
    
    2022-04-07
    有用 1
    回复 5
    • noritake
      noritake
      2022-04-07
      为什么为db.collection().get().then(...)单独再设一个函数就有问题呢?是我单独设的函数有什么问题吗?
      2022-04-07
      回复
    • 老张
      老张
      2022-04-07回复noritake
      你如果想单独都then为什么要用Promise.all?没必要啊。用了all就all().then()嘛,没毛病,用就完事。
      2022-04-07
      回复
    • noritake
      noritake
      2022-04-07
      明白了!谢谢您!
      2022-04-07
      回复
    • noritake
      noritake
      2022-04-07回复老张
      明白了,谢谢您!
      2022-04-07
      回复
    • 无道
      无道
      2022-05-04
      2022-05-04
      回复
登录 后发表内容