return 来自模块内函数的值

return value from a function inside a module

我创建了一个如下所示的模块:

module.exports = function() {

  function func1 () {

  }

  function func2 () {

  }

  return function() {

    func1();
    func2();

    return value;

  };
}

当我在另一个文件中调用模块时

myModule = require('myModule')

使用模块

myModule() 我得到一个未定义的值。我做错了什么?

你正在导出一个函数,当它被调用时 returns 另一个函数反过来会抛出一个 ReferenceErrorvalue 是未定义的,你可以通过定义 value.

return function() {

    func1();
    func2();

    return 1; //for example

  };

为了运行你需要调用它两次。

myModule()();
>> 1

我的猜测是您只想返回值,因此将其包装在 IIFE

module.exports = function () {
    return (function() {
        func1();
        func2();

        return 1; //for example
    })();
}

如果您期望 myModule() 到 return 一个值,您可以导出 IIFE:

module.exports = function () {

    function func1() {

    }

    function func2() {

    }

    return function () {
        func1();
        func2();
        return value;
    }();
}