Угловое 7 Обнаружение изменений: проблема с NgZone.onMicrotaskEmpty - PullRequest
0 голосов
/ 15 февраля 2019

Я использую файл chart.js в приложении angular и рисую диаграмму с данными, поступающими из конечной точки API.

ngOnInit(): void {
this._route.params.subscribe(p => {
  let id: number = +this._route.snapshot.params["id"];
  this.busy = this._awpsService
  .getOutcomeItem("years", id).subscribe(data => {
      this.years = data;
      this.selYear = this.years[0];

      this.ngZone.onMicrotaskEmpty.first.subscribe(() => {
        $("#year").selectpicker();
        $(window).resize();
      });

      this.getProjectItems(id);

    });
});
}

Приведенный выше код прекрасно работал с angular 4, но после обновления до angular7, мне пришлось изменить свой код на

this.ngZone.onMicrotaskEmpty.subscribe(() => {
            $("#year").selectpicker();
            $(window).resize();
});

, потому что .first ушел в угловой 7. Это увеличило загрузку процессора и привело к сбою приложения.ngZone.onMicrotaskEmpty.first широко используется в моем приложении, и я не знаю, как правильно обработать обнаружение изменений. Я также пробовал этот способ

this.ngZone.onMicrotaskEmpty.subscribe({
        next: () => {
          this.ngZone.run(() => {
            $('#year').selectpicker();
            $(window).resize();
          });
        }
});

, но не повезло.кто-нибудь может мне помочь с этим?Спасибо

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