9《白小云》之关注功能3-显示已关注

2019-11-08  本文已影响0人  白龙马5217

界面展示

5217清单

这个页面费了好大的力气,原来没有异步的概念,数据查询异步需要转同步,最后在各位群友的帮助下终于搞定了,这里有个坑,数据的forEach方法async ,await 不起作用,用for-of就可以,核心代码如下:

async getGupiao() {
    //页面初始化时加载
    let rowCount = this.data.rowCount; //数据跳过的行数
    console.log(1);
    wx.showLoading({
      title: '数据加载中...',
    })
    let new_data; //触底新加载的数据
    let old_data = this.data.gupiao; //页面上原有数据
    //加载股票清单
    await new Promise(resolve => {
      db_blma5217.where({}).orderBy('code', 'asc').skip(rowCount).get()
        .then(res => {
          new_data = res.data;
          resolve();
        })
    });

    console.log(3);
    //查询是否关注了
    for (let item of new_data) {
      let cnt2;
      await new Promise(resolve => {
        db_guanzu.where({
            code: item.code
          }).count()
          .then(cnt => {
            cnt2 = cnt.total;
            resolve(cnt2);
          })
      });
      if (cnt2 > 0) item["gzu"] = "★"; //个人关注的加★
      else item["gzu"] = "☆";
    }

    console.log("res5", new_data);

    rowCount = this.data.rowCount + 20; //skip的行数
    //同步页面绑定的数据
    this.setData({
      //gupiao: 数据聚合
      gupiao: old_data.concat(new_data),
      rowCount: rowCount,
    })

    wx.hideLoading();
  },

目前有点小慢,大约5秒刷新出页面,还不知道如何优化。

上一篇 下一篇

猜你喜欢

热点阅读