节点生成器:在顶层使用yield

我试图创build一个工作,它重用了我强烈依赖节点和谐的快速应用程序中的模块。 (而且很好用),但是我不知道如何在“顶层”使用生成器。

所以我有这个文件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 

什么是这样做的推荐方式?

PS我正在使用蓝鸟作为我的诺言库..

你不能。 yield只能在发电机function内使用。

考虑使用co在顶层执行生成器函数,如下所示:

 co(function *() { yield locator.connect(); }); 

co返回一个承诺,然后可以使用它来跟踪传递的生成器函数的完成。