調試出發點:
fixture.detectChange如何通過Angular zone執行其異步邏輯的 在detectChange内部本身有一個ngZone:
fixture.detectChange如何通過Angular zone執行其異步邏輯的
fixture.detectChange如何通過Angular zone執行其異步邏輯的 接下來會在this.ngZone裡執行箭頭函數的邏輯,即this._tick():
fixture.detectChange如何通過Angular zone執行其異步邏輯的 this.ngZone.run裡面調用_inner的run方法:
fixture.detectChange如何通過Angular zone執行其異步邏輯的 this._zoneDelegate.invoke:
fixture.detectChange如何通過Angular zone執行其異步邏輯的 ZoneDelegate.invoke方法内部, 調用this._invokeZS.onInvoke:
fixture.detectChange如何通過Angular zone執行其異步邏輯的 onInvoke:首先onEnter進入Zone:
fixture.detectChange如何通過Angular zone執行其異步邏輯的 onEnter方法,修改zone._nesting的層數:
fixture.detectChange如何通過Angular zone執行其異步邏輯的 parentZoneDelegate.invoke: 調用callback,Angular單元測試代碼裡調用fixture.detectChanges, 内部放入zone執行的this._tick():
fixture.detectChange如何通過Angular zone執行其異步邏輯的