Angular 5: ожидайте обещания в ngOnInit - PullRequest
0 голосов
/ 04 мая 2018

У меня есть следующий компонент с функцией ngOnInit:

declare var ThirdPartyObject: any;

@Component({
  selector: 'app-image',
  templateUrl: './image.component.html'
})
export class ImageComponent implements OnInit {
  public test: any;
  public imageExporter: any;

  constructor() {
  }

  ngOnInit() {
    let thiz = this;
    ThirdPartyObject.getPackage("test").then(function (testNameSpace) {
      testNameSpace.onReady(function () {
        thiz.test = testNameSpace;
        thiz.imageExporter = new thiz.test.ImageExporter("args");
      });
    }, function (error) {
      setTimeout(function () { thiz.ngOnInit(); }, 1000);
    });
  }
}

Как дождаться определения значения imageExporter до загрузки templateUrl этого компонента?

1 Ответ

0 голосов
/ 04 мая 2018

Одним из способов является использование resolver, в вашем маршруте вы можете определить, что должно произойти, прежде чем идти по этому маршруту

https://angular.io/api/router/Resolve

пс. если вы используете функции стрелок, вам не нужно использовать thiz для примера

ThirdPartyObject.getPackage("test").then((testNameSpace) => {
    testNameSpace.onReady(() => {
      this.test = testNameSpace;
      this.imageExporter = new this.test.ImageExporter("args");
    });
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...