有什么方法可以在node js中的函数返回后运行一段代码吗?
像这样的东西:
function f() {
#do stuff
#return result
#do more stuff
}
Run Code Online (Sandbox Code Playgroud)
不,没有办法按照你展示的方式做到这一点。 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;
}
Run Code Online (Sandbox Code Playgroud)
对于这样的事情有合法的用途,您希望尽快执行某些操作,但又不希望它妨碍当前操作。因此,您本质上希望将其排队以在当前活动完成时执行。