2015-01-26 86 views
0

我有一個使用yield聲明一個輔助構造:如何實例化其構造函數使用yield的對象?

var co = require('co'); 

var Helper = co(function*() { 
    var response = yield foo(); 
}) 
module.exports.Helper = Helper; 

我想它實例:

var Helper = require('./helper.js').Helper; 
var helper = new yield Helper(); // TypeError 

,但我得到了以下錯誤:TypeError: You may only yield a function, promise, generator, array, or object, but the following was passed: "[object Object]"

關於如何正確實例化它的任何想法?


編輯

刪除引用興亞,因爲我使用CO(如vanthome指出)。

+1

相關如果不重複:[是不是有一個構造函數返回一個Promise?](http://stackoverflow.com/q/24398699/1048572)(或:...使用yield關鍵字) – Bergi 2015-01-27 21:08:49

回答

1

在這裏使用發電機功能的new操作符沒有意義。運營商。

此外,你的例子與koajs無關,你在這裏明顯使用co,這是一個不同的東西。 公司的Sinve版本4,您可以使用的電話co(...)gives you a promise

+0

啊,我似乎在這裏混淆了一些東西。感謝您的迴應! – Felix 2015-01-27 20:39:22

+1

我不認爲「新產量......」在語法上是錯誤的。您只需要讓yield表達式返回一個構造函數:-) – Bergi 2015-01-27 21:10:44

+0

使用本指南作爲對Generators的介紹:http://davidwalsh.name/es6-generators這是我所知道的最好的。 @Bergi:你說得很對,我已經更新了答案。 – vanthome 2015-01-27 22:10:45

相關問題