>我目前正在创建一个 Backbone.js 和 jquery Mobile Web 应用程序,我有一些对 Backbone.model.fetch() 的调用。我有适当的成功和错误回调,但是无论获取是否成功,我都想执行一些代码。
目前,我只是复制通用代码。但我问自己,无论发生什么情况,是否有任何回调都会被执行。
就像 try{} catch{}final{} 来自 C# 一样。有这样的事情吗?
fetch() 返回一个 'Deferred Object'参见:http://api.jquery.com/category/deferred-object/
它不像try{} catch{},但是您可以使用.always()方法来绑定将在请求完成后执行的回调(无论是否成功)
这样。
var doSomething = function () {
//will run after fetch() request is finished
};
collection.fetch().always(doSomething);
类似地,error
success
通常鼓励将 .done()、.fail() 或 .then() 方法链接到延迟方法(fetch, save...等)