从C/matlab体系转入js体系的人首先应该理解js里异步函数的概念!!!
先说经验教训结论:
1、C的执行是顺序的,但是js的异步函数内外的执行逻辑不是顺序进行的,看起来好像需要延时一段时间才能正确执行。
2、调用数据库、云函数、或者不知道是否是异步函数的wx官方接口,请使用async、await体系确保函数的执行顺序。
教训案例1:
db.collection('Tourism_UserData').aggregate().match({
ifPay:1,
ifrefund:1,
}).count('datanum').end().then(res1 =>{
if(res1.list.length === 0){
this.setData({
OrderNumber:0,
WholeIncome:0,
})
}else{
const PAGE_COUNT = 20;
const totalCount = res1.list[0].datanum; //总数据数量
const PageNum = Math.ceil(totalCount/PAGE_COUNT) //分页数
let Pageindex = 0;
let WholeIncome = 0;
let AntNumber = 0;
for(Pageindex=0;Pageindex<PageNum;Pageindex++){ //每一页挨个处理
db.collection('Tourism_UserData').aggr