当我尝试迭代我的生成器时,我的承诺存在问题。我正在使用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);
屏幕截图: