收藏
回答

我想知道为什么我这个循环无法执行?

JS代码
onLoadfunction () {
        console.log(bookmsg);
        var that = this;
authorlist.where({
        first:"1",
}).get({
    successres =>{
        console.log(res);
        var flbooklist=res;
        this.setData({
            flbooklist:flbooklist.data
        })
        var length1=res.length
        console.log("执行到循环前")
        for (let i = 0; i < res.length; i++) {
            var booknames=res.data[i].bookname
            console.log("执行循环")
            authorlist.where({
                bookname:booknames
            }).count().then(res => {
                console.log("第"+i+"个书名的现有人数是 "+res.total)
                var population=res.total
                this.setData({
                    population:population,
                })
              })
            
        }
    }
})
        
    },

d但这一段代码只执行到了  console.log("执行到循环前")
m目标是为了达成在每次onload的时候都能用从一个数据库中抽取出的字段bookname以及遍历其中的值来count查询相同字段的记录数量并存入一个数组打印出来
j简单点讲就是动态监测参与某一正在举办的活动的人数变动
回答关注问题邀请回答
收藏

2 个回答

  • 121
    121
    2020-06-07

    不知道你这个res回调的数据怎么样的,不过我看下面的代码数据库查询是异步操作,你这样重复查询的话,后面的查询到的数据会通过setData覆盖前面的数据哦

    2020-06-07
    有用
    回复
  • 莫名流年
    莫名流年
    2020-06-07
    res.length 确认大于 0 吗?
    


    2020-06-07
    有用
    回复 1
    • Hall of fame
      Hall of fame
      2020-06-10
      确认
      2020-06-10
      回复
登录 后发表内容