我有 3 个模型我需要在初始化我的应用程序之前从服务器成功获取数据
ModelA.fetch()
ModelB.fetch()
ModelC.fetch()
我会$.Deferred()
为此使用还是在spine.js中有更好的选择?
我最终得到了这个实现:
为每个模型创建一个 deferred
@modela = new $.Deferred()
@modelb = new $.Deferred()
@modelc = new $.Deferred()
然后在模型完成获取时绑定事件
ModelA.bind 'refresh', => @modela.resolve()
ModelB.bind 'refresh', => @modelb.resolve()
ModelC.bind 'refresh', => @modelc.resolve()
最后在一切都完成后解决承诺
$.when(
@modela, @modelb, @modelc
).then(
@appReady,
@appError
)
当成功获取所有模型时调用 appReady。