アプリで利用できるようにそよ風をラップする単純な angularjs サービスがあります。このサービスでは、失敗を処理するための単一のメカニズムが必要です。呼び出しの最後に .fail() を連鎖させようとしましたが、簡単な呼び出しが失敗した場合 (たとえば、ユーザーがログアウトされたために)、失敗が呼び出されます。唯一の問題は、チェーン内の最初の .done() (通常はサービスを呼び出すコントローラーにある) も呼び出されることです。これは、そよ風が成功したときにのみ呼び出されるようにします。
最初の完了も呼び出されないようにするにはどうすればよいですか?
以下は、save 呼び出しのサンプルです (done が誤って呼び出されています)。
dataStore.saveEntity(model)
.then(function() {
// This is being called on fail
});
そしてサービスラッピング風のスニペット
angular.module('app')
.factory('dataStore' ,function() {
var _handleFail = function(error) {
if (error && error.status && error.status === 401) {
// Logged out error (for example
}
};
function saveEntity(entity) {
return manager.saveChanges(entity).fail(_handleFail);
}