如果我使用ng new <name>
创建一个新的Angular应用,并按照以下方式注入ApplicationRef:
import { ..., ApplicationRef } from '@angular/core';
export class AppComponent implements OnInit {
constructor(private appRef: ApplicationRef) {}
ngOnInit() {
this.appRef.isStable.subscribe(console.log);
}
}
在应用初始化后,我会得到发出的值[false, true],这并不奇怪。但是,如果我然后在polyfills.ts或app.module.ts中添加import 'zone.js/dist/zone-patch-rxjs'
,之前的代码将陷入无限循环(在true和false之间来回切换),最终一切都会冻结。这是预期的行为吗?我对此并不十分确定。
3条答案
按热度按时间yyhrrdl81#
@erhise,你能发布一个复现仓库吗?谢谢!
5lhxktic2#
当然可以,
https://stackblitz.com/edit/angular-zone-patch-rxjs-appref
cnh2zyt33#
@erhise,我认为我知道为什么它不起作用了,我需要一些时间来弄清楚如何修复它。这有点棘手,因为
ApplicationRef.isStable
有点特殊,它需要运行outsideOfAngular
。