0

我正在使用内存测试夹具加载器中的 mongo,该加载器在每次测试之前都已准备好。通常可以完美运行。

我有一个函数getSample可以进行我使用 AVA 测试的数据库调用。想用不同的参数(时间戳)多次调用它,我试过这个:

const timestamps = [ '2017-08-14T00:00:00.000Z', '2017-08-13T00:00:00.000Z']

const tasks = timestamps.map(t => getSample(t))
const samples = await Promise.all(tasks)

这以一种有趣的方式失败了。我的第一个电话有效(数据库结果在那里),所有其他电话都返回一个空集 - 没有错误)。

将代码更改为此格式有效。所有循环实例都找到集合和内容。

let samples = []
for (let t of timestamps) {
  samples.push(await getSample(t))
}

const getSample = async () => {
   const c = await getCollection('foo') // fetches open mongo connection and returns collection
   return c.find().toArray()
}

使用标准的 Mongo DB,一切正常。但显然这两条代码的工作方式有所不同,我想了解那是什么。需要明确的是,我不是在为我的内存数据库寻找修复 - 更想了解可能发生的事情。

它可能与SO 帖子有关,但不确定。

4

0 回答 0