Подтвердить что ты не робот

Angular $http/jquery полный эквивалент

Есть ли способ эмулировать обратный вызов jquery 'complete' с помощью angular $http module? У меня есть код, который я хотел бы выполнить независимо от того, был ли запрос успешным или неудачным, и на данный момент мне приходится писать это:

$http.get(someUrl).success(function(){
        successCode();
        completeCode();
    }).error(function(){
        errorCode();
        completeCode();
    })

но я бы скорее написал что-то вроде:

$http.get(someUrl).success(function(){
        successCode();
    }).error(function(){
        errorCode();
    }).complete(function(){
        completeCode();
    })

Я также пробовал использовать API обещаний, но в итоге у меня такая же проблема. Любое предложение?

4b9b3361

Ответ 1

Обновление Aug 2014: .always было переименовано .finally в последних версиях Angular. Предпочитают .finally до .always.

Обратите внимание, что для поддержки IE8 вы должны называть его с помощью обозначения в виде скобок ["finally"].


Вы можете использовать .always в AngularJS

Это изменение довольно новое (вы можете сделать это в jQuery некоторое время), вы можете увидеть фиксацию здесь. Для этого вам необходимо иметь AngularJS 1.1.5 или выше.

always(callback) - позволяет вам наблюдать либо выполнение, либо отказ от обещания,    но сделать это без изменения окончательного значения. Это полезно для выпуска ресурсов или для некоторых    что необходимо выполнить, было ли обещание отклонено или разрешено. См. полный    спецификации для    Дополнительная информация.

Fiddle