首页 > 解决方案 > 仅在使用 Angular 6 完成另一个方法时调用一个方法

问题描述

我必须在 ngOnInit() 期间执行 2 个方法,但只有在 method1() 完全完成时才必须执行 method2()。我不是在做 HTTP 请求,这两种方法都属于同一个组件。

  ngOnInit() {
    this.method1();
    this.method2(); //need to be executed only when method1() is finished
  }

  method1() {
    //do something
  }

  method2() {
    //do something but need to be started only when method1 is finished
  }

这个问题的最佳解决方案是什么?

标签: angulartypescript

解决方案


您的代码完全有效。如果您不执行任何异步操作,那么在另一个之后执行一个函数、语句和表达式是默认行为...

即使调用异步操作,所有剩余的语句和表达式仍以同步方式执行,直到到达调用堆栈的末尾。异步操作被放到事件循环中,以便稍后执行。

异步操作的例子不仅是 HTTP 调用,setTimeout还有setInterval.

您可以在此处阅读有关事件循环的更多信息。


推荐阅读