我想得到推文,但像Deferred对象这样的对象会返回

时间:2013-03-04 07:43:00

标签: javascript coffeescript

我正在编写CoffeeScript以从Twitter获取推文,但似乎有些错误......

class TwitterAPI
  getTweets: ->
    tweets_array = []
    $.getJSON('http://search.twitter.com/search.json?callback=?&rpp=100&q=%40weed_7777')
    .done((data, status) ->
      $.each data.results, (i, item) ->
        tweets_array.push item.text

      return tweets_array
    )

twitter_api = new TwitterAPI
tweets = twitter_api.getTweets()
console.log tweets # returns object looks like Differed object

console.log tweets的内容如下:

我想做的是将推文作为数组。

谢谢你的善意。

1 个答案:

答案 0 :(得分:1)

这应该完成工作:

getTweets = (callback) ->
  $.getJSON('http://search.twitter.com/search.json?callback=?&rpp=100&q=%40weed_7777')
  .done (data) ->
    callback (i.text for i in data.results) 

getTweets (tweets) ->
  console.log tweets

正如@elclanrs所说,http请求是异步的,所以你应该传递一个回调或者在这里使用延迟。 IMO没有必要在类定义中,因为你不存储任何状态。

顺便说一下,您可以阅读一些帖子,以便更深入地了解异步内容的工作原理: