gpt4 book ai didi

javascript - NodeJS 回调之外的变量

转载 作者:行者123 更新时间:2023-11-30 18:38:52 26 4
gpt4 key购买 nike

总的来说,我对 NodeJS 和 JavaScript 还比较陌生。这是我的脚本:

var data = [];

client.query(

'SELECT * FROM cds',
function selectCb(err, results, fields) {

if (err) {
throw err;
}

console.log(results);
console.log(fields);

data.push(results);
}
);

console.log(data);

如何在回调之外访问 results(或 data)var?我不想在运行查询时在彼此内部编写大量回调。

最佳答案

您要求的是同步(或阻塞)执行,这与 node.js 的设计和精神背道而驰。

Node 和 JavaScript 一样,是单线程的。如果您有阻塞代码,那么整个过程就会停止

这意味着您必须对需要很长时间的任何事情(例如从数据库查询)使用回调。如果您正在编写一次性运行的命令行工具,您可能愿意忍受阻塞。但是,如果您正在编写任何类型的响应式应用程序(如网站),那么阻塞就是谋杀。

因此,可能有人可以为您提供有关如何使其成为阻塞式同步调用的答案。如果是这样,并且如果您实现了它,那么您就做错了。您也可以使用 Ruby 或 Python 等多线程脚本语言。

编写回调并没有那么糟糕,但它需要以对于不习惯这种风格的人来说可能不熟悉的方式对架构和包装进行一些思考。

关于javascript - NodeJS 回调之外的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7449810/

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