节点 - 运行 代码在 return 语句之后
Node - Run code after return statement
有什么方法可以 运行 节点 js 中函数 return 之后的代码块吗?
像这样:
function f() {
#do stuff
#return result
#do more stuff
}
不,没有办法按照你展示的方式做到这一点。 return
从包含的函数中退出,return
语句之后的语句不会执行(实际上它们是死代码)。
(根据您的评论)如果您真正想做的是执行函数的其余部分(包括 return 值)不依赖的 "out of band",您可以稍后将该代码安排到 运行。例如,您可以使用 setTimeout()
、process.nextTick()
或 setImmediate()
.
function f() {
// do stuff
setTimeout(function() {
// do some stuff here that will execute out of band
// after this function returns
}, 0);
return someVal;
}
像这样的事情有合法的用途,你想尽快执行一些事情,但你不希望它妨碍当前操作。因此,您基本上希望在当前 activity 完成后将其排队执行。
答案是否定的。在你return之后函数将停止执行。您可以考虑使用更好的流控制来 运行 像 Async/Await
或 Promise
这样的代码
You use the return statement to stop execution of a function and return the value of expression.
根据以下文档
https://docs.microsoft.com/en-us/scripting/javascript/reference/return-statement-javascript
有什么方法可以 运行 节点 js 中函数 return 之后的代码块吗?
像这样:
function f() {
#do stuff
#return result
#do more stuff
}
不,没有办法按照你展示的方式做到这一点。 return
从包含的函数中退出,return
语句之后的语句不会执行(实际上它们是死代码)。
(根据您的评论)如果您真正想做的是执行函数的其余部分(包括 return 值)不依赖的 "out of band",您可以稍后将该代码安排到 运行。例如,您可以使用 setTimeout()
、process.nextTick()
或 setImmediate()
.
function f() {
// do stuff
setTimeout(function() {
// do some stuff here that will execute out of band
// after this function returns
}, 0);
return someVal;
}
像这样的事情有合法的用途,你想尽快执行一些事情,但你不希望它妨碍当前操作。因此,您基本上希望在当前 activity 完成后将其排队执行。
答案是否定的。在你return之后函数将停止执行。您可以考虑使用更好的流控制来 运行 像 Async/Await
或 Promise
You use the return statement to stop execution of a function and return the value of expression.
根据以下文档
https://docs.microsoft.com/en-us/scripting/javascript/reference/return-statement-javascript