Я пытаюсь отправить данные на сервер очень стандартным способом, который я, вероятно, делал миллион раз раньше, однако в данном конкретном случае выполняются два http-вызова. Может кто-нибудь помочь объяснить, почему это может произойти?
Я использую Angular 4.2.4 с Rxjs 5.4.3 и отправляю сообщения на сервер, используя экземпляр HttpClient
.
Ниже приведен соответствующий код компонента, вызываемый с помощью обработчика событий из пользовательского интерфейса.
this.visitsService
.addMeasuredWeight(this.visit.Id, this.kid.Id, weight)
.subscribe(result =>
this.kid.Weights.push(MeasuredWeightDto.ToMeasuredWeight(result))
);
А это сервисный код
public addMeasuredWeight(
visitId: string,
personId: string,
measuredWeight: MeasuredWeight
): Observable<MeasuredWeightDto> {
let url: string = `${this.getBaseUrl()}/${visitId}/persons/${personId}/weights`;
return this.http.post<MeasuredWeightDto>(
url,
MeasuredWeightDto.FromMeasuredWeight(measuredWeight)
);
}
Я подтвердил через отладчик, что эти методы вызываются только один раз, однако на вкладке сети Chrome DevTools создаются два сообщения http, и обработчик результатов подписки действительно запускается дважды. Ниже приведен снимок экрана с DevTools, показывающий несколько сообщений.
Буду очень признателен за любую помощь в определении того, почему здесь совершается несколько звонков. Пожалуйста, дайте мне знать, если требуется дополнительная информация.
Заранее спасибо.