gpt4 book ai didi

node.js - 在异步 node.js 环境中执行数据库操作

转载 作者:行者123 更新时间:2023-11-29 12:50:30 24 4
gpt4 key购买 nike

我想在 Node 应用程序中执行数据库操作。我期望的是一个接一个地执行查询,即顺序执行,因为第二个查询取决于先前的操作。目前,我正在使用 async.series 模块来实现预期结果,但是当我编写嵌套查询时,查询是异步执行的。如何在执行嵌套查询时消除这种异步行为?以下是我的代码。

async.series([
function(callback){
dbClient.query(select_show_query,function(err,result1){
callback(err,result1.rows);
}) //dbclient query end
},//function end

function(callback){
dbClient.query(select_show_person_query,function(err,result2){
callback(err,result2.rows);
}) //dbclient query end
},//function end
function(callback){
dbClient.query(select_show_role_query,function(err,result3){
callback(err,result3.rows);
}) //dbclient query end
},//function end
function(callback){
dbClient.query(select_show_episode_query,function(err,result4){
callback(err,result4.rows);
}) //dbclient query end
},//function end
function(callback){
dbClient.query(select_show_genre_query,function(err,result5){
callback(err,result5.rows);
}) //dbclient query end
},//function end
function(callback){
dbClient.query(select_profile_photo_query,function(err,result6){
callback(err,result6.rows);
}) //dbclient query end
}//function end

],function(err,results){
if(err){
res.json({"status": "failed", "message": err.message})
}
else{
res.send(JSON.stringify(results));
}
} //function end
); //async end

最佳答案

使用 ES2017 (ES8) 的异步/等待:

async function operations(){

try {

let result1 = await dbClient.query(select_show_query);
let result2 = await dbClient.query(select_show_person_query);
let result3 = await dbClient.query(select_show_role_query);
let result4 = await dbClient.query(select_show_episode_query);
let result5 = await dbClient.query(select_show_genre_query);
let result6 = await dbClient.query(select_profile_photo_query);

} catch(err) {
return res.json({"status": "failed", "message": err})
}

// ... do something with result1.rows
// ... do something with result2.rows
// ...

}

关于node.js - 在异步 node.js 环境中执行数据库操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55254470/

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