我试图一次调用多个fetch()
,目前我在运行时:
function notWorking(){
collection1.fetch()
collection2.fetch()
collection3.fetch()
collection4.fetch()
}
如果我只有fetch()
一个并且在另一个fetch()
上返回500内部错误
但是,如果我这样做:
function working(){
collection1.fetch({
success:function(){
collection2.fetch({
success:function(){
collection3.fetch({
success:function(){
collection4.fetch()
}
})
}
})
}
})
}
有效,但看起来像是一种可怕的做法,这是一次拉出多个fetch()
的更好方法吗?
(后端是使用带有sinatra的ruby和数据映像器,它的价值是什么)
答案 0 :(得分:0)
正如福伊索斯所说,你的核心问题是服务器端问题。 Backbone(甚至在jQuery中)没有任何东西可以阻止你一次进行多次抓取。
话虽如此,如果你坚持使用服务器端实现,你至少可以利用Backbone的fetch返回jQuery的ajax返回结果(这本身就是一个“延期“对象”:
function working(){
collection4.fetch().complete(
collection3.fetch().complete(
collection2.fetch().complete(
collection.fetch()));
}
或者你可以通过fetch将适当的选项传递给jQuery来实际使AJAX请求同步:如下所示:
function working(){
collection.fetch({async: false});
collection2.fetch({async: false});
collection3.fetch({async: false});
collection4.fetch({async: false});
}