如何异步查询多条SQL?

Posted

技术标签:

【中文标题】如何异步查询多条SQL?【英文标题】:How to query multi SQL asynchrously? 【发布时间】:2020-04-20 08:09:23 【问题描述】:

我正在用 nestjs 和 typeorm 构建 webapp,

我想知道下面的代码实际上是做什么的?

const r1 = await this.connection.query(sqlA)
const r2 = await this.connection query(sqlB)

是先查询sqlA,得到结果,再查询sqlB,得到结果是同步的吗?

我想异步查询多个 sql,

const  _q1 = this.connection.query(sqlA)
const  _q2 = this.connection.query(sqlB)
const r1 = await _q1
const r2 = await _q2

这种方式正确吗?

【问题讨论】:

【参考方案1】:

这种方式对我来说似乎是正确的。这是因为您首先调用了两个 query 函数,这两个函数返回承诺,然后等待。

第一个脚本的顺序是“调用查询函数”->“等待解析”->“调用另一个查询函数”->“等待解析”。

您可以使用Promise.all 并行调用多个 Promise。这确保了您所追求的结果。

const [r1, r2] = Promise.all([this.connection.query(sqlA), this.connection.query(sqlB)])

【讨论】:

以上是关于如何异步查询多条SQL?的主要内容,如果未能解决你的问题,请参考以下文章