2015-07-17 3 views
1

Я пытаюсь создать задание, которое повторно использует модули из моего экспресс-приложения, которое сильно зависит от узла-гармонии. (И это прекрасно работает), но я не знаю, как использовать генераторы на «верхнем уровне».Генераторы узлов: использование урожая на верхнем уровне

Так что у меня этот файл 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 в качестве моей библиотеки обещаний.

ответ

3

Вы не можете. yield может использоваться только в функции генератора.

Рассмотрите возможность использования co для выполнения функций генератора на верхнем уровне, например, так:

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

co возвращает обещание, которое вы можете использовать для отслеживания завершения переданной функции генератора.

+0

ОК спасибо. Использование Блюберд это будет выглядеть следующим образом: Promise.coroutine (функция *() { \t выход locator.connect(); \t console.log ('подключен'); })(); – AyKarsi

Смежные вопросы