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