gpt4 book ai didi

javascript - nodejs写同步函数eg fs.readFileSync

转载 作者:行者123 更新时间:2023-11-30 06:55:00 25 4
gpt4 key购买 nike

我想创建从数据库中获取数据的函数,例如 executeQuery(sql)。但我不想从这个函数返回任何 promise ,也不想传递任何回调函数。我只想返回查询的结果。

例如:

var rows = executeQuery('SELECT * FROM table');
console.log('database query completed:', rows);

我知道这不是 javascript 的工作方式。我也经历了一些也想要这个东西的 stackoverflow 问题。但是每个人都说没有办法做到这一点。

现在这是我的问题,如果这不可能,那么像 fs.readFileSync() 这样的函数是如何工作的。这些函数既不需要任何回调,也不会返回任何 promise 。他们只是做他们被定义要做的事情。

最佳答案

更新:正如@Paulpro 在评论中所说,下面的答案永远不会起作用,因为代码将陷入无限循环。所以你最好使用 Promises


我建议@happy-machine 和@bergur,最好使用Promises。但是如果你想知道 fs.readFileSync() 是如何工作的,那就去读一读 fs module code in nodejs source code .

你会发现它做了一个 do {} while() 并且你可以做同样的事情像这样同步你的异步代码

var rows;
executeQuery('SELECT * FROM table').then(
promiseResponse => {
rows = promiseResponse
}
)
do {
// nothing
} while(!rows) // rows is undefined
console.log('database query completed:', rows);

关于javascript - nodejs写同步函数eg fs.readFileSync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54271216/

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