Backbone是否有一个finally-Callback?

时间:2014-01-16 22:06:14

标签: jquery-mobile web-applications backbone.js try-catch-finally

我目前正在创建一个Backbone.js和jquery Mobile Web应用程序,我对Backbone.model.fetch()进行了一些调用。 我有正确的成功和错误回调,但是无论fetch是否成功,都有一些我想要执行的代码。

目前,我只是复制公共代码。但是我问自己,无论发生什么事情,都会有任何回调被执行。

就像C#中的try {} catch {} finally {}一样。 有什么类似的吗?

1 个答案:

答案 0 :(得分:3)

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);

类似地,不是将successerror回调传递给fetch()的选项,而是鼓励链接.done(),. fail()或.then()延迟方法的方法(获取,保存......等)