【发布时间】:2016-05-23 22:38:35
【问题描述】:
我收到错误:
bluebird.js:2118 Uncaught TypeError: generatorFunction must be a function
但我不明白为什么会发生此错误,因为我将它传递给 generatorFunction。
export class Welcome {
fetch() {
Promise.coroutine(this.userData());
}
userData = function* getData() {
this.lotsData = yield this.testApi.getMock();
this.lotsData = JSON.stringify(this.lotsData, null, 4);
}
}
所以点击事件调用 fetch() 并调用 this.userData()。这是 this.userData 的控制台转储:
GeneratorFunctionPrototype {}
_invoke: invoke(method, arg)
__proto__: GeneratorFunctionPrototype
这告诉我它肯定是一个生成器。如果这有什么不同的话,我会在 aurelia 类中使用所有这些(我不认为它不应该)。那么为什么生成器函数必须是一个函数会出错呢?
【问题讨论】:
-
报错的行号是多少?
-
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。 See: How to create a Minimal, Complete, and Verifiable example.
-
你真正想要的是
fetch = Promis.coroutine(userData)
标签: javascript promise generator bluebird