Отмена услуги REST при отмене запроса - PullRequest
0 голосов
/ 28 мая 2019

У меня есть фрагмент из углового интерфейса, который будет вызывать myService.getNames (), когда пользователь вводит букву в поле.SwitchMap отменяет предыдущий запрос всякий раз, когда пользователь вводит в поле другую букву.

.pipe(
    debounceTime(500),
    switchMap(value => this.myService.getNames(value))
)

Эта служба вызовет конечную точку REST http://localhost:8080/listing?value=<value_sent_from_client>.Запрос на получение списка имен занимает некоторое время.Если пользователь отредактировал поле 3 раза, будет 2 отмененных запроса и 1 текущий запрос.

На стороне сервера, как отменить 2 ранее запущенных запроса?Или они будут отменены автоматически?

1 Ответ

0 голосов
/ 28 мая 2019

Вы не можете отменить запрос на стороне сервера. Решение может быть в более сложном алгоритме, например:

  • каждый запрос помещается в очередь и сразу возвращается, не дожидаясь окончания обработки (сохранение в БД и т. Д.)
  • очередь заменяет предыдущие элементы, если новые элементы присутствуют у того же пользователя
  • клиент подписывается на обновления с сервера через веб-сокеты

Или любой другой подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...