2017-02-12 58 views
0

es6。我正在學習es6中引入的生成器。這裏是我的app.js當我運行節點app.js沒有打印。沒有日誌被打印。這裏是我的代碼Node.js不觸發的發電機

 'use strict'; 
     let sequence; 
     const run = generator =>{ 
      sequence = generator(); 

     } 

     const resume = (val) => { 
      sequence.next(val); 
     } 

     const async = { 
      run, 
      resume 
     } 

     const pause = delay => { 
      setTimeout(() => { 
      console.log('++++++PAUSED FOR 500 MS++++++++++'); 
      async.resume(1000); 
      } , delay); 
     } 
     function* generatorFunction(){ 
      console.log('start*****   '); 
      var value = yield pause(500); 
      console.log('middle*****   ' + value); 
      value = yield pause(500); 
      console.log('end*****   '+ value); 
     } 

     async.run(generatorFunction); 

我急需幫助

回答

1

我認爲你必須調用sequence.next();

const run = generator =>{ 
     sequence = generator(); 
     sequence.next(); 

    } 

運行中的功能,使發電機可以開始尋找第一個yield語句

+0

它的工作感謝.. – Tarzan

+1

或者更好,'async.resume(不確定)'。 – Bergi