是的
我试图使用“ Twitter”模块(在npm上找到,使用npm install twitter
安装)从给定的screen_name中获取朋友列表,但是,我的程序一直失败,而且我不确定为什么。在这个时间点上,它所要做的只是从朋友JSON对象中包含的朋友列表中摇摇欲坠,但是由于某种原因,它不起作用。
我不知道为什么。该代码包含在下面。如果您需要提出问题,请发表评论。
function readTokenFromDisc(){ //Used to save on requests.
return new Promise(function(resolve, reject){
fs.readFile('bearerToken.txt', 'utf8', function(error, data){
resolve(data);
});
});
}
function buildClient(bToken){
return new Promise(function(resolve, reject) {
var client = new Twitter({
consumer_key: process.env.TWITTER_CONSUMER_KEY,
consumer_secret: process.env.TWITTER_CONSUMER_SECRET,
bearer_token: bToken
});
resolve(client);
});
}
function grabTwitterFollowers(client){
return new Promise(function(resolve, reject) {
client.get('friends/list', {screen_name: 'POTUS'}, function (error, tweets, response){
if(error){
console.log(error);
};
resolve(tweets);
console.log(tweets) //debug
console.log(response) //debug
});
});
};
function initTwitter(){
console.log('Test!') //debug, triggers
readTokenFromDisc().then(function(contents){
console.log('Othertest!') //debug, triggers.
buildClient(contents);
}).then(function(client){
grabTwitterFollowers(client);
}).then(function(following){
console.log(following) //debug, output is 'Undefined'.
});
}
最佳答案
您缺少回报。grabTwitterFollowers(client);
和buildClient(contents);
在initTwitter
中应该return grabTwitterFollowers(client);
和return buildClient(contents);
既然这样,就为连锁店带来了希望。否则,promise将沿undefined
传递,函数的结果不返回。