补充一下:我没有开启es6转5的选项,使用的是小程序自带的async/await 请问有官方人员能核实一下情况嘛?谢谢!
云开发数据库在真机上无法并发获取数据- 当前 Bug 的表现(可附上截图) 我简化了一下我的代码: 我需要查询某个place两周(14天)内的状态,故把14个Promise放进了promises里,然后使用Promise.all来并发执行,(因为之前我的做法是串行执行14个查询,但这样太慢了,每次需要3秒左右) [代码][代码] exports.getStatus = async (placeId) => { const date = new Date() const promises = new Array() [代码] for[代码] [代码](let i = 0; i < 14; i++) {[代码] [代码] [代码][代码]promises.push([代码][代码] [代码][代码]db.collection([代码][代码]'xxx'[代码][代码]).where({[代码][代码] [代码][代码]placeId,[代码][代码] [代码][代码]date: util.formatDateTime(date, [代码][代码]'yyyy-MM-dd'[代码][代码])[代码][代码] [代码][代码]})[代码].get()[代码] [代码][代码])[代码][代码] [代码][代码]date.setDate(date.getDate() + 1)[代码][代码] [代码][代码]}[代码][代码] [代码][代码]return[代码] [代码]await Promise.all(promises)[代码] [代码]}[代码] [代码]console.time([代码][代码]'get status'[代码][代码])[代码][代码]let statusRes = await getStatus(placeI[代码][代码]d)[代码][代码]console.timeEnd([代码][代码]'get status'[代码][代码])[代码]* 在开发者工具上,平均用时在300ms左右,可见确实是并发执行的 [图片] * 但在真机上,测出来还是需要3秒左右,我猜想它还是在顺序的执行 [图片] * 真机环境: [图片] - 预期表现 在任何环境下,都应该是并发执行,所需时间应该在300ms左右 - 复现路径和提供一个最简复现 Demo(应该不需要了吧 在此先行谢过各位大佬!
2019-04-01