gpt4 book ai didi

mysql - 如何处理对mysql数据库的异步调用

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

我对 Nodejs 很陌生,这可能就是我问这个问题的原因。我最近发现使用 Nodejs 对任何数据库进行的调用都是异步的。

作为一名前 C# .Net 程序员,这对我来说有点意外。我只是习惯了同步编码,稍等一下就可以了。

当前我想要进行数据库调用,并且根据返回的结果,代码应该继续运行。如何做到这一点最好?我发现了一些有关 Promise 的内容,但尚未找到正确的解决方案。

我真正想要的是这样的:

var requestLoop = setInterval(function(){

console.log('Trading bot (re)started..');
var wlist = [];

wlist = db_connection.getWatchList_DB() ==> Database call here


if(wlist.length > 0){
// Perform the rest of the code

}

}, 5000);//300000 five minutes

所以,对我来说,等待数据库调用并继续获取结果是可以的。有什么简单的解决办法吗?

最佳答案

你可以试试这个mysql2模块内置了对 Promise 的支持。来自官方文档的代码片段

async function main() {
// get the client
const mysql = require('mysql2');
// create the pool
const pool = mysql.createPool({host:'localhost', user: 'root', database: 'test'});
// now get a Promise wrapped instance of that pool
const promisePool = pool.promise();
// query database using promises
const [rows,fields] = await promisePool.query("SELECT 1");
}

此外,如果您对 Node 和异步编程非常陌生,我建议您了解 CallbacksPromises,当然还有 Async-Await

关于mysql - 如何处理对mysql数据库的异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58468626/

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