我是一位努力学习基础知识的新编码员。为了实践,我已经构建了一个小的Node应用程序,它抓取用户时间轴上的最后一条推文并将其反转。下面的代码:如何访问函数范围之外的数据?
// REQUIRES
var dotenv = require('dotenv');
var Twitter = require('twitter');
// LOAD ENV VARIABLES
dotenv.load();
// MAKE A TWITTER CLIENT
var client = new Twitter({
consumer_key: process.env.TWITTER_CONSUMER_KEY,
consumer_secret: process.env.TWITTER_CONSUMER_SECRET,
access_token_key: process.env.TWITTER_ACCESS_TOKEN_KEY,
access_token_secret: process.env.TWITTER_ACCESS_TOKEN_SECRET
});
// FUNCTION TO REVERSE A STRING
function reverse(s) {
var o = '';
for (var i = s.length - 1; i >= 0; i--)
o += s[i];
return o;
}
// GRAB LAST TWEET FROM USER TIMELINE AND REVERSE IT
client.get('statuses/user_timeline', {screen_name: 'twitterapi', count: 1}, function(error, tweets, response) {
if(error) throw error;
// console.log(tweets); // Last tweet object from timeline.
var lastTweet = tweets[0].text; // Text from last tweet.
var reverseTweet = reverse(lastTweet); // Last tweet reversed.
console.log("\nYour last tweet was: " + lastTweet);
console.log("\nYour last tweet reversed is: " + reverseTweet);
});
我的问题是:如果我想通过lastTweet
或reverseTweet
到另一个功能client.get()
(例如,到另一个文本分析功能)的范围之内,我会怎么做呢?
我试过在全局声明变量,但我认为请求/响应的异步性质将其固定。我肯定愿意学习承诺,回调等(我现在明白他们对他们的看法),但我不确定这是否是解决这个特定问题的正确方法。
最后:如果我没有用正确的词汇来问正确的问题,请告诉我。
这将有助于显示你想使用'lastTweet'和/或'reverseTweet'在 – mhatch