Angular应用里setTimeout被如何被monkey patched的
生活随笔
收集整理的這篇文章主要介紹了
Angular应用里setTimeout被如何被monkey patched的
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
monkey patched: monkey patch指的是在運行時動態替換,一般是在startup的時候.
下面的測試代碼可以讓我們弄清楚,瀏覽器支持的原生函數setTimeout,是如何在Angular應用啟動時被monkey patched的:
將setTimeout保存到一個Angular變量里。
在zone-evergreen.js的patchMethod方法里:
下圖地2719行,能看到timers組下面的setTimeout,setInterval被monkey patched的入口:
然后我在Angular應用里調用setTimeout時,執行的實際上是被monkey patched之后的版本,即代碼1449行的函數體 patchDelegate, 一個委托函數:
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的Angular应用里setTimeout被如何被monkey patched的的全部內容,希望文章能夠幫你解決所遇到的問題。