Angular: использование асинхронного канала путем пользовательской установки значения переменной

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

0
задан UncleDave 11 April 2019 в 10:04
поделиться

1 ответ

Я предполагаю, что вы можете использовать BehaviorSubject здесь:

showContent = new BehaviorSubject(false)
...
this.httpDataHandler.get<...>(...).subscribe(response => {
  // lots of stuff
  showContent.next(true);
});
...
*ngIf="showContent | async"

или использовать ChangeDetectorRef

constructor(private cdr: ChangeDetectorRef) {}
... 
this.httpDataHandler.get<...>(...).subscribe(response => {
  // lots of stuff
  showContent = true;
  this.cdr.markForCheck();
});
...
*ngIf="showContent"

В общем, когда у вас есть такие проблемы, вы пытаетесь извлечь данные из ваших наблюдаемых слишком рано. У вас может быть лучшее решение с некоторым рефакторингом, где вы бы избежали подписки. Но без полного кода трудно сказать, как ...

0
ответ дан David Palita 11 April 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: