NodeJs:有没有办法退出整个函数,而不仅仅是 return 的内部函数?

NodeJs: Is there a way to exit the whole function instead of just the internal function with return?

所以我有这个功能

app.post('/assignment/loan', (req, res) => {

在那个函数里面我有这个函数

db.run('SELECT loanable FROM book WHERE id=?',[bookID],(err,row)=>{

我使用 return 但它只退出内部函数并继续执行其他操作。我想停止整个 post 函数的进一步执行。有办法吗?

编辑:完整代码在这里:https://pastebin.com/8TPThfpW

提前致谢。

不直接。当您的 run 回调是 运行 时,调用它的函数 已经返回 。这是因为 JavaScript 的 run-to-completion 语义的性质以及 Node.js 这种回调被异步调用的事实。

您可以考虑在这些函数周围使用 promise 包装器,然后将您的逻辑放在 async 函数中,这样您就可以让函数的逻辑等到 run 操作和您对它的处理结果完成。很难用这样零碎的代码给你一个具体的建议,但是 模糊地 像这样:

// In an `async` function...
const res = await promiseEnabledAppPost('/assignment/loan');
const row = await promiseEnabledDBRun('SELECT loanable FROM book WHERE id=?',[bookID]);
// ...do something with `row`...
if (/* you don't want to continue with the `post` callback logic */ {
    return;
}
// ...continue the logic from the `post` callback...