首页 > 解决方案 > Zone.js 检测到 ZoneAwarePromise `(window|global).Promise` 已被覆盖。使用 polyfill 正确

问题描述

我已将我的应用程序从 angular 8 更新到 9,更新软件包后,我已成功编译应用程序。但在浏览器 Chrome 控制台中。它有错误消息:


Error: Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.
Most likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)

我试图将 zone.js 移动到文件 polyfills.ts 和其他一些建议的末尾。他们不工作。

这是我的 polyfills.ts

import 'core-js/es/reflect';



import 'hammerjs/hammer';


import 'zone.js/dist/zone';  // Included with Angular CLI.

这是我的 ng 版本:

Angular CLI: 9.0.3
Node: 10.16.0
OS: win32 x64

Angular: 9.0.3
... animations, cli, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... platform-server, router
Ivy Workspace: Yes

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.900.3
@angular-devkit/build-angular     0.900.3
@angular-devkit/build-optimizer   0.900.3
@angular-devkit/build-webpack     0.900.3
@angular-devkit/core              9.0.3
@angular-devkit/schematics        9.0.3
@angular/cdk                      9.0.0
@angular/flex-layout              9.0.0-beta.29
@angular/material                 9.0.0
@ngtools/webpack                  9.0.3
@schematics/angular               9.0.3
@schematics/update                0.900.3
rxjs                              6.5.4
typescript                        3.6.5
webpack                           4.41.2

有人可以给我一些想法或建议吗?非常感谢。

标签: javascriptangulartypescriptangular9zone.js

解决方案


此问题已修复,将很快在 zone.js 0.10.3 中发布


推荐阅读