Angular 4: одна подписка, два вызова Http - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь отправить данные на сервер очень стандартным способом, который я, вероятно, делал миллион раз раньше, однако в данном конкретном случае выполняются два 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, показывающий несколько сообщений.

enter image description here

Буду очень признателен за любую помощь в определении того, почему здесь совершается несколько звонков. Пожалуйста, дайте мне знать, если требуется дополнительная информация. Заранее спасибо.

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