在节点js中返回函数后,有没有办法运行代码块?
这样的事情:
function f() {
#do stuff
#return result
#do more stuff
}
答案 0 :(得分:2)
不,没有办法以你展示的方式做到这一点。 return
语句在return
语句不执行后立即从包含函数和语句退出(实际上它们是死代码)。
(根据你的意见)如果你真正想做的是执行“带外”的事情,其余的功能(包括返回值)不依赖于你,你可以安排该代码运行后来。例如,您可以使用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;
}
对于像这样的事情有合法用途,你想尽快执行某些事情,但你不希望它妨碍当前的操作。因此,您当然希望将其排队以在当前活动完成时执行。
答案 1 :(得分:1)
答案是否定。返回后,该功能将停止执行。您可以考虑使用更好的流量控制来运行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