我正在Web控制台中测试一些代码(使用coffescript)

@user = new Onethingaday.Models.User()
@user.url= "/users/#{current_user.get('nickname')}.json?id_type=nickname"
@user.fetch()
console.log(@user)
console.log(@user.get("facebook_id"))


console.log(@user)行显示以下内容:


但是,console.log(@user.get("facebook_id"))显示undefined

我看到user具有facebook_id属性。我如何获取它的价值?

最佳答案

尽管看起来很奇怪,但这似乎是一个时机问题。 fetch是异步的;您需要等到其success回调被调用后才能尝试访问任何属性。

尝试这个:

@user.fetch success: =>
  console.log(@user)
  console.log(@user.get("facebook_id"))


令人困惑的是,第一个console.log将显示user.attributes.facebook_id存在,而第二个则不显示,但是console.log本身在Webkit的实现中是异步的,因此发生的是@user.get调用被立即解决(同步) ,而第一个console.log中的对象检查要稍后解决-在fetch完成之后。

07-24 09:38
查看更多