Angular Observable подписывается несколько раз изредка - PullRequest
0 голосов
/ 17 февраля 2019

Я вижу, что по этому вопросу уже задано много вопросов, но все еще не удается найти правильное решение.

У меня есть служба для запроса http и подписки в компоненте.

Это иногда подписывается несколько раз и отправляет несколько запросов http.

Иногда этоработает нормально, поэтому я не уверен, что это зависит от того, вызывается ли он несколько раз или нет.

http request is called 3 times

Первый вариант - проверка.(Я не уверен, что это требуется или это из-за политики CORS. Есть ли способ избежать этого тоже?)

first request

И затем следующие два запросато же самое и вернуть значения дважды.

Это большая проблема для меня.

Это мой сервис и код компонента.

service.ts

getPartners(): Observable<Partner[]> {
    return this.http.get<Partner[]>(SERVER_API_URL + `api/partners`);
  }

component.ts

this.partnerService.getPartners()
    .pipe(first())
    .subscribe(partners => {
      this.partners = partners;
    });

Как это исправить?Заранее спасибо.

1 Ответ

0 голосов
/ 17 февраля 2019

Первый звонок по вашему запросу не простой.Простой запрос - это те, которые соответствуют следующим:

  • GET / HEAD / POST
  • Используется только несколько значений для заголовков: напр.Тип содержимого, Accept-Language, Accept и т. Д. (См. Список в Интернете)
  • не используется ReadableStream.
  • и т. Д. *

Thisозначает, что если вы, например (в типичном случае) используете auth, вставляя заголовок авторизации в HTTP-запрос, этот вызов превратится в вызов NOT SIMPLE и вызовет предполетный вызов, предшествующий исходному (это вызов OPTIONS).Wich автоматически запускается браузером, и вы не можете остановить / пропустить это.

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