我正在编写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
的内容如下:
我想做的是将推文作为数组。
谢谢你的善意。
答案 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没有必要在类定义中,因为你不存储任何状态。
顺便说一下,您可以阅读一些帖子,以便更深入地了解异步内容的工作原理: