上一篇功能实现了,但加载数据非常慢,加载20行要5秒,一般人是不能忍的。
问百度看B站,找到了解决方法,就是先发起异步调用再等待返回结果。
原来加载慢不能忍的代码:
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"] = "☆";
}
优化后的代码速度快了很多
//先发起异步调用
const proms = new_data.map(x=>{
let cnt2 ;
return new Promise(resolve => {
db_guanzu.where({
code: x.code
}).count()
.then(cnt => {
cnt2 = cnt.total;
if (cnt2 > 0) x["gzu"] = "★"
else x["gzu"] = "☆"
resolve(x);
})
});
})
console.log("proms",proms);
//等待处理返回结果
for (const prom of proms ){
const cntt = await prom;
}
网友评论