【发布时间】:2019-03-27 00:14:49
【问题描述】:
我有一个节点模块,它导出一个承诺并解析一个数据库连接。当它解决时,我使用连接来查询记录,这是另一个异步操作。我可以用 1 个 await 执行这两个异步操作吗?
在这种情况下,查询异步调用取决于解析为数据库连接的异步承诺。
模块
module.exports = {
db: new Promise((acc, rej) => {
if (!db.authenticated) {
sequelize.authenticate()
.then((res) => {
db.authenticated = true;
acc(db);
})
.catch((err) => {
rej(err)
});
} else {
acc(db);
}
})
};
用法
const db = require('../db/db.js').db;
const existingUser = await db.Person.findOne({where : {email : body.email}});
【问题讨论】:
-
你能澄清一下这句话吗?
query, another async operation, records。不知道你在问什么。 -
查询是另一个异步操作。
-
一个动作是否依赖于另一个动作的输出?如果是,那么答案是您不能同时执行这两个操作。
-
使用
await Promise.all([someCall(), anotherCall()]);
标签: javascript node.js async-await