Angular 9 HTTP-вызов с гнездом js бэкэнд - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть Angular (9) веб-интерфейс с гнездом js backind rest api (в nodejs) Конечная точка, которую я вызываю в бэкэнде, выполняет несколько довольно сложных операций, и для ответа требуется около 2 минут. Во внешнем интерфейсе я использую подписку, чтобы подписаться на ответ, подобный этому:

this.metaService.subscribe(
  result => {
  //Handle result
  },
  error => {
    this.subscription.unsubscribe();
    console.error('Error: ' + error);
  },
  () => {
    this.subscription.unsubscribe();
    console.error('Completed');
  });

Проблема в том, что во внутреннем интерфейсе он начинает выполнять код снова и снова. Обратите внимание, что он не выполняет HTTP-вызов снова (я вижу это на вкладке сети в инструментах разработчика), он остается в режиме ожидания все время) Кажется, это работает, если я

.pipe(take(1)).subscribe(

затем не выполняет зацикливание в бэкэнде, но сразу завершает подписку (и http находится в состоянии отмены на вкладке сети). Я выполняю это на своем локальном хосте на машине windows (подсистема linux). Версия узла: 12.14.1

Кто-нибудь в чем причина и как это исправить?

-Jani

1 Ответ

0 голосов
/ 08 марта 2020

Это не ответ: я думаю, что смог понять это. У меня было несколько методов stati c asyn c в a для l oop, которые, казалось, вызывали это. На самом деле я не знаю почему, но когда я удалил методы и преобразовал их в нестатические c asyn c методы (все еще для l oop), я больше не испытываю проблемы. Я не уверен, почему они были в первую очередь c ...

...