0

我正在编写 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如下:

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

谢谢你的好心。

4

1 回答 1

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 不需要在类定义中,因为你不在那里存储任何状态。

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

于 2013-03-04T08:44:54.447 回答