大佬教程收集整理的这篇文章主要介绍了angularjs – 已覆盖ZoneAwarePromise,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
“错误:Zone.js检测到ZoneAwarePromise'(窗口|全局).Promise’已被覆盖.
最有可能的原因是在Zone.js之后加载了Promise polyfill(在加载zone.js时不需要Polyfilling Promise api.如果必须在node_modules / zone.js /中加载一个,请在加载zone.js之前加载). dist / zone.js(第21行)“
我能想到的最接近的事情是我在单元测试中通过手动返回observable来模拟来自http调用的响应.
这是一个使用Jasmine和Karma进行单元测试的Angular2应用程序.
UPDATE
因此,根据错误消息,这似乎可能是一个加载订单问题,但是我没有在我可以确定的任何地方加载polyfill,除非我不小心抓住它们.我已经附加了我的karma.conf.js和systemjs.conf.js来帮助找到错误.
Karma.conf.js
module.exports = function(config) { var gulpConfig = require('../gulp/config')(); /** * List of npm packages that imported via `import` Syntax */ var dependencies = [ '@angular','lodash','rxjs' ]; var configuration = { basePath: '../../',browserNoActivityTimeout: 20000,frameworks: ['jasmine'],browsers: ['PhantomJS'],reporters: ['progress','coverage'],preprocessors: {},// Generate json used for remap-istanbul coverageReporter: { includeAllSources: true,dir: 'coverage/appCoverage/remap/',reporters: [ { type: 'json',subdir: 'report-json' } ] },files: [ 'node_modules/reflect-Metadata/Reflect.js','node_modules/zone.js/dist/zone.js','node_modules/zone.js/dist/long-stack-trace-zone.js','node_modules/zone.js/dist/proxy.js','node_modules/zone.js/dist/sync-test.js','node_modules/zone.js/dist/jasmine-patch.js','node_modules/zone.js/dist/async-test.js','node_modules/zone.js/dist/fake-async-test.js','node_modules/angular/angular.js','node_modules/core-js/client/shim.min.js','node_modules/systemjs/dist/system.src.js' ],// proxied base paths proxies: { // required for component assests fetched by Angular's compiler "/src/": "/base/src/","/app/": "/base/src/app/","/node_modules/": "/base/node_modules/" },port: 9876,colors: true,logLevel: config.LOG_INFO,autoWatch: true,//browserNoActivityTimeout: 100000 }; configuration.preprocessors[gulpConfig.tmpApp + '**/!(*.spec)+(.js)'] = ['coverage']; configuration.preprocessors[gulpConfig.tmpApp + '**/*.js'] = ['sourcemap']; configuration.preprocessors[gulpConfig.tmpTest + '**/*.js'] = ['sourcemap']; var files = [ gulpConfig.tmpTest + 'test-helpers/global/**/*.js',gulpConfig.src + 'systemjs.conf.js','config/test/karma-test-shim.js',createFilePattern(gulpConfig.tmpApp + '**/*.js',{ included: false }),createFilePattern(gulpConfig.tmpTest + 'test-helpers/*.js',createFilePattern(gulpConfig.app + '**/*.html',createFilePattern(gulpConfig.app + '**/*.css',createFilePattern(gulpConfig.app + '**/*.ts',{ included: false,watched: false }),createFilePattern(gulpConfig.tmpApp + '**/*.js.map',watched: false }) ]; configuration.files = configuration.files.concat(files); dependencies.forEach(function(key) { configuration.files.push({ pattern: 'node_modules/' + key + '/**/*.js',included: false,watched: false }); }); if (process.env.APPVEYOR) { configuration.browsers = ['IE']; configuration.singleRun = true; configuration.browserNoActivityTimeout = 90000; // Note: default value (10000) is not enough } config.set(configuration); // Helpers function createFilePattern(path,config) { config.pattern = path; return config; } }
UPDATE
我的解决方案涉及确保我的所有zone.js文件最后都在karma.conf.js中加载.我猜测我包含的其他东西也包括polyfill,但是在zone.js之后加载,所以引发了错误.将zone.js移动到最后,一切正常.
这是我在karma.conf.js中的当前设置,它为我解决了错误.
files: [ {pattern: 'dist/vendor/es6-shim/es6-shim.js',included: true,watched: false},{pattern: 'dist/vendor/reflect-Metadata/Reflect.js',{pattern: 'dist/vendor/systemjs/dist/system-polyfills.js',{pattern: 'dist/vendor/systemjs/dist/system.src.js',{pattern: 'dist/vendor/zone.js/dist/zone.js',{pattern: 'dist/vendor/zone.js/dist/proxy.js',{pattern: 'dist/vendor/zone.js/dist/sync-test.js',{pattern: 'dist/vendor/zone.js/dist/long-stack-trace-zone.js',{pattern: 'dist/vendor/zone.js/dist/async-test.js',{pattern: 'dist/vendor/zone.js/dist/fake-async-test.js',{pattern: 'dist/vendor/zone.js/dist/jasmine-patch.js',{pattern: 'config/karma-test-shim.js',watched: true},// Distribution folder. {pattern: 'dist/**/*',watched: true} ],
以上是大佬教程为你收集整理的angularjs – 已覆盖ZoneAwarePromise全部内容,希望文章能够帮你解决angularjs – 已覆盖ZoneAwarePromise所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。