在发电机中使用承诺

时间:2015-11-09 18:01:52

标签: javascript generator bluebird es6-promise

当我尝试迭代我的生成器时,我的承诺存在问题。我正在使用NPM Twitter模块,并使用Bluebird.js进行宣传。据我所知,当我调用第一个g.next()时,程序将执行直到yield语句,然后向右移动。在第二次next()调用时,程序将把promise中返回的值赋给x变量。相反,即使我尝试记录' x'的值,我也会获得未定义的值。在功能内。第一个g.next()会注销一个对象,显示我确实返回了一个成功的promise(见下面的截图)。也许我认为这一切都错了,但我真的很困惑这不起作用。任何和所有帮助将不胜感激。

var Promise = require('bluebird');

var Twitter = require('twitter');

var client = 
Promise.promisifyAll(
new Twitter({
  consumer_key: '*********',
  consumer_secret: '********',
  access_token_key: '********',
  access_token_secret: '******'
}));


function *go(){

  var x = yield client.getAsync('statuses/user_timeline');
  console.log(x);

};


var g = go();

console.log(g.next().value);
console.log(g.next().value);

屏幕截图:

enter image description here

0 个答案:

没有答案