gpt4 book ai didi

node.js - 在express.js Controller 中await 是否会影响性能?

转载 作者:太空宇宙 更新时间:2023-11-03 23:13:35 26 4
gpt4 key购买 nike

看到这个例子

app.get('/users', async function(req, res, next){
try {
res.json(await db.getUsers())
} catch(err) {
next(err)
}
})

在数据库中查询需要时间,因此使用await似乎是有意义的。我的问题是,每个“获取用户”请求都会被阻止吗?如果是这样,运行负载测试时性能会很差。

我可以这样做来提高性能吗?

app.get('/users', function(req, res, next){
try {
dbGetUsersCallback(res); // no await here
} catch(err) {
next(err)
}
})

const dbGetUsersCallback = async (res) => {
const ret = await db.getUsers();
res.json(res);
}

这有帮助吗?

最佳答案

这基本上是相同的事情,只是将主要逻辑转移到另一个函数中。

<小时/>

每个db.getUsers()都将处于待机状态,直到从DB获得实际结果,但之后它会很快执行。不确定是否可以进一步优化。

<小时/>

我也认为这里

dbGetUsersCallback(); // no await here

你的意思是:

dbGetUsersCallback(res); // no await here

关于node.js - 在express.js Controller 中await 是否会影响性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58358691/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com