html52.com
我爱小程序-开发者交流社区

云开发数据库在真机上无法并发获取数据

问题模块 框架类型 问题类型 终端类型 AppID 基础库版本
云开发 小程序 Bug 工具 wxa834e8255ed74285 2.4.4

- 当前 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(placeId)
console.timeEnd('get status')

* 在开发者工具上,平均用时在300ms左右,可见确实是并发执行的

* 在开发者工具上,平均用时在300ms左右,可见确实是并发执行的* 但在真机上,测出来还是需要3秒左右,我猜想它还是在顺序的执行

* 但在真机上,测出来还是需要3秒左右,我猜想它还是在顺序的执行

* 但在真机上,测出来还是需要3秒左右,我猜想它还是在顺序的执行* 真机环境:

* 真机环境:

* 真机环境:- 预期表现


- 预期表现

在任何环境下,都应该是并发执行,所需时间应该在300ms左右

- 复现路径和提供一个最简复现 Demo(应该不需要了吧


在此先行谢过各位大佬!


评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付