我正在尝试创建一个 Node 模块(使用 Harmony),在被另一个模块/应用程序加载时,必须屈服于它,以便在调用它的任何公开函数之前可以执行和加载它的构造中的东西。
我遇到的问题是我似乎无法yield
使用正在执行的内部函数module.exports
。一个例子会有所帮助。
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() 函数?
另外,这种方法有什么替代方法?我想保持模块的对象性质,以便模块可以加载不同的输入,例如上面示例中的s_id变量/对象。