收藏
回答

在不同集合中查找,每次success都更新一个数并显示提示框,为什么最后只出现一个提示框?

    const db = wx.cloud.database()
    var that = this
    var finalid=0
    var recordmin=99999999
    for(let i=0;i<2;i++)
    {
      that = this
      db.collection(mmap[i]).doc(that.data.end).get({
        success: res => {
          let a = 0
   
          a = parseFloat(res.data.lowest)

          if(a < recordmin)
          {
            recordmin = a
            finalid = i
          }
          wx.showToast({
            icon: 'none',
            title: that.data.array[finalid]  + recordmin.toFixed(1) ,
          })
        },
        fail: err => {
          wx.showToast({
            icon: 'none',
            title: 'err',

          })
        }
      })
    }

我使用一个循环,mmap对应的是云数据库中的不同集合的,我在不同的集合中分别查找东西,希望找到最小的那一个然后弹框弹出,我发现如果只令循环到最后的时候弹出弹框,那么弹出的是相对应的最后的一个集合的信息,并不是所有集合的最小值。

但是如果在每一个success里面都让弹框弹出,最后得到的就是所有集合中相对应的最小值,请问这样操作是为什么呢?如果想找到最小的那一个然后弹框弹出,应该怎么做呢?


求解答!十分谢谢!!!!

最后一次编辑于  02-01
回答关注问题邀请回答
收藏

1 个回答

  • undefined
    undefined
    02-01

    别用for循环,用递归

    02-01
    赞同
    回复 8
    • 千千
      千千
      02-01
      是在db里面的查询里面套下一个查询对吗,十分谢谢!
      02-01
      回复
    • 千千
      千千
      02-01
      我改成递归之后,就算在每一个success里面都放弹窗,也不会弹出东西了,可能我哪里理解错了😢
      02-01
      回复
    • undefined
      undefined
      02-01回复千千
      代码咋写的
      02-01
      回复
    • 千千
      千千
      02-01回复undefined
      因为我这里最多递归两次,所以开头加了n!=2,因为不知道在哪里加showToast比较好所以就加了两个地方orz,麻烦你了
      02-01
      回复
    • undefined
      undefined
      02-01回复千千
      02-01
      回复
    查看更多(3)
登录 后发表内容
问题标签