zone.js
zone.js npm
zones 曾是 js 中的一个提案,但后来被废弃了,现在提出了新的
异步上下文提案
在 node.js 的环境下可以选择使用
Async hooks
来达成同样的目的
在 node.js 中 req.on('end') 里面调用的函数似乎无法绑定到对应的 zone
可以通过封装成 promise 来解决这个问题
对于 promise 他可以正确监听,但 原生 async 与 await zone.js 会被中断,在浏览器中没有办法弥补
Moving off of Zones and building to target ES2018. · Issue #38782 · angular/angular (github.com)
angular with tsconfig target ES2017 async/await will not work with zone.js · Issue #31730 · angular/angular (github.com)
单纯靠他监听异步结束似乎并不靠谱,我没有找到有效的方法
官方文档中使用
!hasTaskState.microTask && !hasTaskState.macroTask
来进行判断,但在我的代码中这个判断是不正确的