网站搜索

angular - Angular2:第三方代码和猴子补丁


在一个项目中,我们正在使用一个第三方库(它不是 Angular2 库——只是普通的 JavaScript)。它只是使用无间隔定时和 requestAnimationFrame 回调来运行一些后台任务。然而,一旦我们在项目中使用 Angular2,它就开始执行变更检测;这是我不想要的!更糟的是,这导致 Protractor 永远在等待,从而超时 :s

看起来 runOutsideAngular 是最接近的,但据我理解,它只会在一次“旋转”中“运行在外部”。例如,如果有人将 requestAnimationFrame 作为外部函数调用;并且在这个 requestAnimationFrame 内部又调用了另一个 requestAnimationFrame,这会再次在 Angular 内部运行,对吗?不过,当我阅读 Angular2 的文档时,它说明:

从此函数内部调度的任何未来任务或微任务将继续在 Angular 区域之外执行。

更重要的是,我什么时候会为第三方库调用 runOutsideAngular,因为该库在 Angular2 对我的 web 应用程序甚至被知道之前就已经启动了?