无法在字符串“__zone_symbol__optimizedZoneEventTask”上创建 属性“__creationTrace__”

Cannot create property '__creationTrace__' on string '__zone_symbol__optimizedZoneEventTask'

这是一个糟糕的星期四。这是第13个。昨天我向我的同事们解释了我们是多么幸运,13 日是星期四,而不是星期五。

好吧,那是昨天,今天我醒来时 angular 的拳头打在我的脸上:

Cannot create property 'creationTrace' on string '__zone_symbol__optimizedZoneEventTask'

好吧,它也可能是 zone.js,或者甚至可能是那个叫做开发堆栈的黑暗深渊中更深的东西。有人可以帮助我吗?

对不起我的态度,只是与 angular 合作,因为它的早期 alpha 阶段终于对我造成了伤害。

PS: 可以这么说,自从昨天的工作版本以来我没有做任何改变。所以我完全不知道这个错误是为什么、如何以及从哪里来的……

好吧,我找到了一条出路。 zone.js 伙计们最近发布了一个新版本,您可以从这里查看。 https://github.com/angular/zone.js/releases 我认为问题在于此版本。 在你的 package.json 中使用 zone.js 像这样

"zone.js": "0.8.12"

如果您在 Plunker 中使用默认的 Angular 模板,您可以通过将版本插入 index.html 文件的适当行来设置 zone.js 版本。

<script src="https://unpkg.com/zone.js@0.8.12/dist/zone.js"></script>
<script src="https://unpkg.com/zone.js@0.8.12/dist/long-stack-trace-zone.js"></script>

我好像发现了什么:

在 package.json 中将 "zone.js" 修复为版本“0.8.12” 解决了我的问题。

I am getting this issue with 'zone.js':"0.8.11"

Unhandled Promise rejection: Cannot create property '__creationTrace__' on string '__zone_symbol__optimizedZoneEventTask' ; Zone: <root> ; Task: Promise.then ; Value: TypeError: Cannot create property '__creationTrace__' on string '__zone_symbol__optimizedZoneEventTask'
    at Object.onScheduleTask (long-stack-trace-zone.js:115)
    at ZoneDelegate.scheduleTask (zone.js:404)
    at Object.onScheduleTask (zone.js:300)
    at ZoneDelegate.scheduleTask (zone.js:404)
    at Zone.scheduleTask (zone.js:235)
    at Zone.scheduleEventTask (zone.js:261)
    at zone.js:1561
    at BrowserPlatformLocation.onPopState (platform-browser.es5.js:1922)
    at PathLocationStrategy.onPopState (common.es5.js:592)
    at new Location (common.es5.js:256)
    at AppBrowserModuleInjector.createInternal (module.ngfactory.js [sm]:1)
    at AppBrowserModuleInjector.NgModuleInjector.create (core.es5.js:3558)
    at NgModuleFactory.create (core.es5.js:3531)
    at core.es5.js:4772
    at ZoneDelegate.invoke (zone.js:391)
    at Object.onInvoke (core.es5.js:4149)
    at ZoneDelegate.invoke (zone.js:390)
    at Zone.run (zone.js:141)
    at NgZone.run (core.es5.js:4017)
    at PlatformRef_._bootstrapModuleFactoryWithZone (core.es5.js:4770)
    at core.es5.js:4812
    at ZoneDelegate.invoke (zone.js:391)
    at Zone.run (zone.js:141)
    at zone.js:832
    at ZoneDelegate.invokeTask (zone.js:424)
    at Zone.runTask (zone.js:191)
    at drainMicroTaskQueue (zone.js:596) TypeError: Cannot create property '__creationTrace__' on string '__zone_symbol__optimizedZoneEventTask'
    at Object.onScheduleTask .........

我 运行 昨晚遇到了同样的问题,我的 package.json 文件中 zone.js 的以下条目对我有用:

"zone.js": "0.8.4"

https://github.com/angular/zone.js/issues/832 中所述,该错误仅在 zone.js 版本 0.8.13 中发生,并且与事件绑定有关。

错误已经修复,但现在为了修复应用程序,您需要降级到 zone.js 的先前版本。

"zone.js": "0.8.12"package.json 中应该可以解决问题。

我在使用最新版本 Angular 的 plunker 时发现了这个错误。我更改了 index.html 文件以获得版本“0.8.12”(从 unpkg.com/zone.js/dist/zone.js 到 unpkg.com/zone.js@0.8.12/dist/zone.js) 并工作。

当您使用 cdn 并且 zonejs 已更新其路径 URL 以区分版本时,会发生这种情况。

所以从

修改路径
https://unpkg.com/zone.js/dist/....

https://unpkg.com/zone.js@0.8.12/dist/....

参考变更日志here

此问题已在zone.js中修复,请更新至最新版本zone.js