我有3个模型,我需要在启动应用程序之前从服务器成功获取数据
ModelA.fetch()
ModelB.fetch()
ModelC.fetch()
我会使用$.Deferred()
吗?还是在spine.js中有更好的选择?
答案 0 :(得分:2)
我最终得到了这个实现:
为每个模型创建延期
@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。