节点 - 在 return 语句后运行代码

Mig*_*jão 1 node.js meteor

有什么方法可以在node js中的函数返回后运行一段代码吗?

像这样的东西:

   function f() {
         #do stuff
         #return result
         #do more stuff
    }
Run Code Online (Sandbox Code Playgroud)

jfr*_*d00 6

不,没有办法按照你展示的方式做到这一点。 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)

对于这样的事情有合法的用途,您希望尽快执行某些操作,但又不希望它妨碍当前操作。因此,您本质上希望将其排队以在当前活动完成时执行。