Как ждать завершения функции - PullRequest
1 голос
/ 22 апреля 2020

Я хочу, чтобы функция this.refresh() запускалась только после завершения функции this.getAuthorizedDatabases(). У вас есть идеи, как это легко сделать?

Заранее спасибо.

  ngOnInit() {
      this.userService.currentUser
      .subscribe(res => {
        this.user = res;
        this.getAuthorizedDatabases();

      });
     this.refresh();
  }

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Если getAuthorizedDatabases() синхронно.

 ngOnInit() {
    this.userService.currentUser
        .subscribe(res => {
            this.user = res;
            this.getAuthorizedDatabases();
            this.refresh();
        });
}

Если getAuthorizedDatabases() асинхронно. используя Asyn c -aaait

 async ngOnInit() {
    this.userService.currentUser
        .subscribe(res => {
            this.user = res;
            await this.getAuthorizedDatabases();
            this.refresh();
        });
}
0 голосов
/ 22 апреля 2020

Если getAuthorizedDatabases() также не является асинхронным, вы можете сделать

   ngOnInit() {
          this.userService.currentUser
          .subscribe(res => {
            this.user = res;
            this.getAuthorizedDatabases();
            this.refresh();
          });

Наблюдаемые объекты являются асинхронными, и выполнение не будет ожидать, пока Наблюдаемое не завершится sh.

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