如何让
myPromise
成为正常的承诺而不是 ZoneAwarePromise?我也尝试过将 resolve()
包裹在 NgZone.runOutsideAngular()
和 setTimeout()
中,但没有成功。
const myPromise = Promise.resolve('');
console.log('myPromise', myPromise); // logged as ZoneAwarePromise
Angular 需要 zone.js 来修补 Promise,因此如果 Promise 不是 ZoneAwarePromise,Angular 将抛出错误。您可以禁用其他异步任务,例如 setTimeout,但不能禁用 Promise
如果您在 Angular 应用程序中禁用 Promise,它将抛出以下错误。
Uncaught (in promise) Error: Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.