Aurelia HttpClient отменить запросы
Я пытаюсь создать компонент автозаполнения и хочу, чтобы он отменял неразрешенные запросы к серверу во время их ввода.
Я не могу найти документацию по этому вопросу в документации для 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 ответ
Похоже, вы можете сделать это:
this.client["pendingRequests"].forEach(request => {
request.abort();
});
Я должен сделать ["pendingRequests"]
так как я использую TypeScript и массив, кажется, не входит в определение.
Примечание. Я также использую HttpClient с заданной областью для каждого автозаполнения, чтобы при отмене всех предыдущих запросов он случайно не отменял что-то еще, запрашиваемое приложением.