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

时间:2018-02-06 00:38:14

标签: node.js meteor

在节点js中返回函数后,有没有办法运行代码块?

这样的事情:

   function f() {
         #do stuff
         #return result
         #do more stuff
    }

2 个答案:

答案 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/AwaitPromise

等代码

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