我有一个获取required
的模块,但我暂时不想在模块中运行代码。我可以对它进行评论,但后来它让我想知道是否有办法从加载模块中提前退出/返回。
是否有内置的方法来阻止执行流程通过模块的代码,并提前“返回”?
答案 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
})()