gpt4 book ai didi

node.js - Express 中的异步如何工作?

转载 作者:太空宇宙 更新时间:2023-11-04 00:34:21 24 4
gpt4 key购买 nike

我在 ExpressJS guide 上找到了以下内容:

var mysql      = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'dbuser',
password : 's3kreee7'
});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
if (err) throw err;
console.log('The solution is: ', rows[0].solution);
});

connection.end();

这难道不是一种不好的做法吗?在我看来,连接有可能在执行查询之前结束。这样不会报错吗?

最佳答案

如上所述here :

  • 您在连接上调用的每个方法都会排队并按顺序执行。

  • 关闭连接是使用 end() 完成的,这确保在向 mysql 服务器发送退出数据包之前执行所有剩余的查询。

因此,即使可以在查询完成之前调用 end() 方法,但在查询完成执行之前它实际上不会被执行。

与 NodeJS 本身相比,这与 mysql 包的关系更大。

关于node.js - Express 中的异步如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39782853/

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