Итак, я тестирую свое приложение в медленной сети 3G, и я заметил, что Angular HTTP-клиент берет на себя ответственность за отмену предыдущих вызовов, что плохо, поскольку мне нужны все вызовы, отправляемые на сервер (данные и даже заголовок разные, просто URL такой же). Опять же, идентификатор равен diff, поэтому для Angular нет смысла решать, что можно просто отменить предыдущий вызов ... странно!
См. Прикрепленное изображение. Я НЕ пользуюсь switchMap, поэтому предполагается, что все вызовы будут проходить через go даже в медленной сети 3G, но все же Angular HTTP-клиент отменяет предыдущие вызовы.
это мой http-вызов:
const httpOptions2 = {headers: new HttpHeaders({'Content-Type': 'application/json'}), responseType: 'text' as 'json', 'rand': Math.random()};
const url = `${this.coreAppData[0].webApiResellerBaseUrl}&command=UpdateUserPrivilege&privilegeId=${privilegeId}&accessMask=${accessMask}&customerUserName=${name}&rand=${Math.random()}`;
return this._http.get<any>(url, httpOptions2).pipe(
map((result: any) => result)
);
как вы можете видеть без switchMap, я даже добавил случайный аргумент для URL и заголовка, чтобы попытаться исправить проблему без успеха.
Вот что вы можете увидеть в сетевой консоли.
Как вы заставляете HttpClient отправлять ВСЕ команды на сервер и не отбрасывать предыдущие вызовы ДАЖЕ, если URL-адрес один и тот же (что в моем случае аргументы diff настолько супер странные )
Спасибо,
Шон.