Angular JS отменяет вызов $ http перед вызовом нового $ http

В angular JS 1.1.5 вы можете отменить ранее запущенные вызовы $ http. Эти два link1 и link2 дает некоторое объяснение того, как это работает.

Однако я не могу понять, как это использовать на практике. Я создал plnkr, чтобы проиллюстрировать, чего я хочу достичь.

  1. У пользователя есть ссылка, по которой он может перейти (как мы знаем, пользователи, как правило, делают это очень страстно)
  2. Если пользователь нажимает ссылку, а предыдущий запрос еще не завершен, его следует отменить и сделать новый запрос (в этом примере есть другие способы игнорировать несколько щелчков. Исходная проблема - это поле ввода пользователя с ng-change на нем. - запрос выполняется каждый раз, когда пользователь меняет значение - каждое нажатие клавиши запускает $ http. Я использую ссылку, чтобы сделать его немного проще)

Как видно из plnkr, запрос срабатывает и немедленно отменяется, но я ожидаю, что последний запрос будет успешным. .

Я новичок в angularjs, поэтому, вероятно, я делаю это неправильно. Я погуглил все, что могу вообразить, но нет полных примеров для canceller.resolve ()

Может ли кто-нибудь помочь мне с этим или направить меня в правильном направлении?


person raivis.krumins    schedule 01.07.2013    source источник


Ответы (1)


Вам нужно создать новую отмену для каждого запроса, потому что, как только она будет решена, ее нельзя будет использовать снова.

Обновленный plnkr см. здесь.

person David Bennett    schedule 11.07.2013
comment
Бинго! Я повторно использовал свой. Вот почему это не сработало. - person Amin Ariana; 09.10.2014