50元奖励,关于多次调用云开发统计API的问题,急急急,谢谢各位
- 当前 Bug 的表现(可附上截图)
- 预期表现
- 复现路径
- 提供一个最简复现 Demo
问题描述:从一个云开发集合中多次调用统计API,因为是异步返回结果,每次返回的都不一样.
需要:因为是分类统计,需要知道返回的结果,是什么条件(由’ID0’+i控制)下产生的结果
4 回复
//生成查询Promise数组 Promise.all( this .data.courses.map( function (item, i){ return db.collection( "questions" ).where({ chapterID: db.RegExp({ regexp: "ID0" + i }) }).count(); })) .then( function (resultList){ console.log(resultList); //按查询的数组顺序输出 }) |
这个意思?
你现在是由courses里的结果来查询的,查询时这里面的数据是确定了的。所以问题只是你for循环里的异步回调的接收和整理的问题。
你查询的每次都不一样是因为var声明时把i提升到了外部,而你查询都是异步的,故查询的条件可以执行,但then接收时都是一个值。这里可以用Promise.all()来按照下标来匹配courses读取