如何从这个内联函数的范围中获取这些数据?

时间:2014-11-22 09:33:22

标签: javascript twitter

x = 0;

    T.get('statuses/user_timeline', function(err, data, response) {

        x = data[0].text

    });

console.log(x);

我正在使用twit来访问节点中的Twitter API,并且无法弄清楚如何将API中的数据分配给公共变量。其github页面上的所有示例都使用此格式。例如,我如何在这里获取console.log来打印最新的推文,而不是0?

所有带有twit的东西都能正常工作。我刚刚遇到这个JS问题。

1 个答案:

答案 0 :(得分:1)

你完全误解了控制流程。

T.get的调用是异步的,这意味着代码

console.log(x);

执行大多数情况函数体之前(因为在异步调用T.get 已启动后,控件立即传递给它)。实现你想要的唯一方法是使用回调,如:

var callback = function(x) {
  console.log(x);
}
T.get('statuses/user_timeline', function(err, data, response) {
    callback(data[0].text);
});

随着对twitter的请求完成,将调用回调。