我正在阅读Angular
中的更改检测,并了解到该应用程序从onTurnDone
订阅了ngZone
事件,并执行了一个执行更改检测的tick()
函数。
何时onTurnDone
被解雇?这是一个周期性事件,每隔几毫秒触发一次,还是发生在异步操作发生时触发呢? click
?
答案 0 :(得分:0)
Angular使用zone.js,它在运行时猴子修补了大多数浏览器API(DOM事件,XHR请求,setTimeout等)。然后,从您的angular应用程序中调用这些修补的方法,然后依次调用本机浏览器API。 完成任务后,区域(Ngzone)会触发onTurnDone(现已重命名为onMicrotaskEmpty),然后最终通过调用tick()方法来启动更改检测过程。