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秒刷新出页面,还不知道如何优化。