退出加载节点模块,而不停止进程

时间:2016-05-25 16:33:15

标签: javascript node.js module

我有一个获取required的模块,但我暂时不想在模块中运行代码。我可以对它进行评论,但后来它让我想知道是否有办法从加载模块中提前退出/返回。

是否有内置的方法来阻止执行流程通过模块的代码,并提前“返回”?

2 个答案:

答案 0 :(得分:5)

实际上,有一种内置方式。每个节点模块都加载到模块函数包装器中,模块作为该函数的主体执行。因此,您可以在模块中的任何位置使用普通return来停止执行其余代码。

节点模块在函数包装器中执行,如下所示:

(function (exports, require, module, __filename, __dirname, process, global) {  
    // module code is here

    // a return statement skips executing any more code in your module after that statement
    return;
 });

因此,您可以在模块中的任何位置使用return语句,它将从模块包装函数返回,跳过模块中的其余代码。

使用if语句或在您的模块中使代码更自我描述并且不会让有人想知道为什么会出现无关的return语句可能是更简洁的代码在模块中间:

// this code temporarily removed from being executed
if (someBoolean) {
    // your module code here
}

如果您打算将其删除一段时间,只需注释掉大部分代码。

答案 1 :(得分:1)

没有内置方式,但您可以使用以下解决方法。将整个模块包装在IIFE中,然后使用return语句:

(function() {

  // some code

  // stop execution here
  return;

  // some code

})()