Javascript 要获取数组而不是延迟对象吗

Javascript 要获取数组而不是延迟对象吗,javascript,coffeescript,Javascript,Coffeescript,我想通过代码twitter.tweets()获取tweets,但是twitter类的ajax方法只返回延迟对象,如问题底部所示 class Twitter tweets = [] getTweets: -> tweets_array = [] $.getJSON('http://search.twitter.com/search.json?callback=?&rpp=100&q=%40weed_7777') .done((data) =&

我想通过代码
twitter.tweets()
获取tweets,但是
twitter
类的ajax方法只返回延迟对象,如问题底部所示

class Twitter
  tweets = []

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

twitter = new Twitter

###
Present Code
###
twitter.getTweets()
.done ->
  console.log twitter.tweets

###
Ideal Code ... very simple !
###
console.log twitter.tweets()


感谢您的好意。

如果您使用Javascript,您应该非常清楚您是在异步/事件环境中工作的。因此,最终你将不得不习惯这一点。当然,有一些策略可以让生活变得更轻松,例如使用异步库()

显然,只有当您有多个要串联执行的操作时,这才有意义。 如果你只有一个。而不是你的代码

twitter.getTweets().done -> console.log twitter.tweets

这是最好的方式。

你肯定不想这样!您不应该在等待异步调用返回时阻止代码执行。您应该将一些错误值作为第一个参数传递给回调,以指示没有错误,即
callback null,如果需要,传递一些数据
twitter.getTweets().done -> console.log twitter.tweets