0

我有一个带有一些生命周期钩子的组件。

同步是指一个接一个地执行钩子。

export class MyComponent implements OnInit, OnChanges, AfterContentInit, AfterViewInit {
  ngOnInit() {
    console.log('ngOnInit');
    setTimeout(() => {
        console.log('setTimeout');
    });
  } 

  ngOnChanges(changes: SimpleChanges): void {
    console.log('ngOnChanges');
  }

  ngAfterContentInit(): void {
    console.log('ngAfterContentInit');
  }

  ngAfterViewInit(): void {
    console.log('ngAfterViewInit');
  }
}

有两种情况

  1. 它们是同步的 - 然后最后的 setTimeout 调用本身就是合理的。但是有人可以指点我任何 Angular 文档或 Angular 代码来支持它。

  2. 如果没有 - 谁能帮我理解为什么 setTimeout 最后运行。

我知道事件循环是如何工作的,并且生命周期钩子是按顺序运行的,但我的问题是 Angular 是如何实现它的?当我在 chrome 调试模式下查看调用堆栈时,我没有找到任何序列。

是否保证上面示例中的 setTimeout 将在上述所有钩子之后运行?

4

0 回答 0