Aurelia HttpClient отменить запросы - PullRequest
       14

Aurelia HttpClient отменить запросы

0 голосов
/ 21 сентября 2018

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

В документации по HttpClient я не могу найти никакой документации по этому поводу.Он упоминает, что он отменяется (в отличие от fetch), но не какhttps://aurelia.io/docs/plugins/http-services

В настоящее время у меня есть это, которое я слепо слепил, что неудивительно, что он даже не прерывает запросы:

async searchTermChanged(newValue, oldValue) {   
    if (newValue.length < 3)
      return;

    if (this.promises.length) {
       this.promises.forEach(x => x.abort());
       //should probably remove too
    }

    var promise = this.httpClient.post(this.endpoint, { SearchTerm: newValue });
    this.promises.push(promise);

    var data = await promise;

    var response = JSON.parse(data.response);

    this.results = response;
  }
}

Где я могу найти больше информации о том, как сделатьотменяемые запросы?Мой гугл-фу подводит меня.

1 Ответ

0 голосов
/ 21 сентября 2018

Похоже, вы можете сделать это:

this.client["pendingRequests"].forEach(request => {
   request.abort();
});

Мне нужно сделать ["pendingRequests"], так как я использую TypeScript, и массив, кажется, не входит в определение.

Примечание: я также использую HttpClient с заданной областью для каждого автозаполнения, чтобы при отмене всех предыдущих запросов он случайно не отменял что-то еще, запрашиваемое приложением.

...