我正在尝试创建一个工作,它重用了我的快速应用程序中的模块,这些模块强烈依赖于节点和谐。 (而且效果很好),但我不知道如何在“顶层”使用生成器。
所以我有这个文件job.js
var locator = require('./../locatorSetup');
yield locator.connect(); // returns a promise
console.log('connected');
我首先打电话给
node --harmony job.js
不幸的是我得到了:
yield locator.connect();
^^^^^^^
SyntaxError: Unexpected identifier
这样做的推荐方法是什么?
P.S。我正在使用Bluebird作为我的承诺库..
答案 0 :(得分:3)
你做不到。 co(function *() {
yield locator.connect();
});
只能在生成器函数中使用。
考虑使用co在顶层执行生成器函数,如下所示:
co
join
返回一个承诺,然后您可以使用它来跟踪传递的生成器函数的完成情况。