【发布时间】:2015-07-04 08:58:11
【问题描述】:
我正在尝试创建一个 Node 模块(使用 Harmony),该模块在被另一个模块/应用程序加载时必须屈服,以便可以在调用它的任何公开函数之前执行和加载它的构造中的东西。
我遇到的问题是,我似乎无法使用module.exports 对正在执行的内部函数进行yield。举个例子会有所帮助。
module.exports = function*(s_id){
console.log('loading the module lets it execute up till here');
if (!(this instanceof Tester)) return yield new Tester();
}
function* Tester(){
console.log('but we never execute this generator function');
}
Tester.prototype = {
model : function*(){
// other functions
}
}
这已经困扰我好几个小时了!我觉得解决方案非常简单,但我似乎无法理解它。我试图简单地使 Tester() 函数导出,但仍然遇到同样的问题。为什么我似乎无法 yield 到 Tester() 函数?
此外,这种方法还有什么替代方法?我想保持模块的 Object 特性,以便模块可以加载不同的输入,例如上面示例中的 s_id 变量/对象。
【问题讨论】:
-
你真的想在生成器函数上尝试
new吗?
标签: node.js module generator ecmascript-harmony yield-keyword