Я работаю над приложением Angular 2 и впервые добавил некоторые async/await
функции. Все работает нормально локально, но после его развертывания на моем тестовом сервере, где я получаю эту ошибку в IE11
(см. Нижнюю часть вопроса для полной трассировки стека браузера):
Отклонение необработанного обещания: синтаксическая ошибка
Ошибка возникает при загрузке приложения Angular2, а не при выполнении метода. Ошибка указывает на этот метод (он также является единственным методом в этом компоненте).
my-component.ts
async logoff(event: { preventDefault: () => void }) {
event.preventDefault();
await this.authService.logoff();
window.location.href = '/Account/Login';
}
Я впервые представил async/await
, поэтому я знаю, что это главная проблема.
Шаги тестирования
- I use Visual Studio to publish a release version to my local IIS. Spces are:
- Windows 10 (x64)
- IIS
Затем я запускаю установку своих пакетов npm, которые мне нужны для производственной среды, в моем опубликованном каталоге
npm i --production
Открываю
IE11
браузер, запускаю приложение из IIS и все работает, ошибок нет.- I then make a complete copy of my published directory and copy it to my test server. Test server spces are:
- Windows 2012 R2 Standard
- IIS
- Затем я перехожу на сайт, используя тот же экземпляр браузера IE11 на моем компьютере Dev, который я использовал ранее, и получаю указанную выше ошибку.
Так почему же он терпит неудачу, когда я запускаю его со своего тестового сервера, и не выходит из строя, когда я запускаю его с моего локального компьютера? Есть ли требуемый модуль / пакет Node или NPM, который нужно установить глобально для прокладок для корректной работы из IE11 или проблема в другом? Я здесь в растерянности.
Конфигурация
Если я могу что-то добавить к этому, дайте мне знать, я обновлю вопрос.
tsconfig.js
Согласно рекомендуемой конфигурации
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": [ "es2015", "dom" ],
"removeComments": false,
"noImplicitAny": false,
"suppressImplicitAnyIndexErrors": true
},
"compileOnSave": true
}
package.json
"dependencies": {
"@angular/common": "2.4.8",
"@angular/compiler": "2.4.8",
"@angular/core": "2.4.8",
"@angular/forms": "2.4.8",
"@angular/http": "2.4.8",
"@angular/platform-browser": "2.4.8",
"@angular/platform-browser-dynamic": "2.4.8",
"@angular/router": "3.4.8",
"core-js": "~2.4.1",
"jquery": "~3.1.1",
"lodash": "^4.17.4",
"reflect-metadata": "^0.1.9",
"rxjs": "5.2.0",
"systemjs": "0.20.9",
"zone.js": "^0.7.7"
}
Index.html (только скрипты)
<script src="https://cdnjs.cloudflare.com/ajax/libs/core-js/2.4.1/shim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.0.1/Rx.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/zone.js/0.7.7/zone.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/reflect-metadata/0.1.8/Reflect.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js"></script>
<script>
System.import('system-config.js')
.then(function() {
System.import('main');
})
.catch(console.error.bind(console));
</script>
Полная трассировка стека на стороне клиента
Unhandled Promise rejection: Syntax error
Evaluating http://mytest.server.domain/Scripts/my-component.js
Evaluating http://mytest.server.domain/Scripts/app.module.js
Evaluating http://mytest.server.domain/Scripts/main.js
Loading main ; Zone: <root> ; Task: Promise.then ; Value: Error: Syntax error
Evaluating http://mytest.server.domain/Scripts/my-component.js
Evaluating http://mytest.server.domain/Scripts/app.module.js
Evaluating http://mytest.server.domain/Scripts/main.js
Loading main SyntaxError: Syntax error
at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:25003)
at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:5:224)
at j (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7593)
at S (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7059)
at x (https://cdnjs.cloudflare.com/a
"Unhandled Promise rejection:"
"Syntax error
Evaluating http://mytest.server.domain/Scripts/my-component.js
Evaluating http://mytest.server.domain/Scripts/app.module.js
Evaluating http://mytest.server.domain/Scripts/main.js
Loading main"
"; Zone:"
"<root>"
"; Task:"
"Promise.then"
"; Value:"
{
[functions]: ,
__proto__: { },
__zone_symbol__error: { },
__zone_symbol__message: "Syntax error
Evaluating http://mytest.server.domain/Scripts/my-component.js
Evaluating http://mytest.server.domain/Scripts/app.module.js
Evaluating http://mytest.server.domain/Scripts/main.js
Loading main",
__zone_symbol__number: undefined,
description: "Syntax error
Evaluating http://mytest.server.domain/Scripts/my-component.js
Evaluating http://mytest.server.domain/Scripts/app.module.js
Evaluating http://mytest.server.domain/Scripts/main.js
Loading main",
message: "Syntax error
Evaluating http://mytest.server.domain/Scripts/my-component.js
Evaluating http://mytest.server.domain/Scripts/app.module.js
Evaluating http://mytest.server.domain/Scripts/main.js
Loading main",
name: "Error",
number: undefined,
originalErr: { },
originalStack: undefined,
stack: "SyntaxError: Syntax error
at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:25003)
at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:5:224)
at j (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7593)
at S (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7059)
at x (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6096)
at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6268)
at Anonymous function (eval code:20:1)
at Anonymous function (eval code:1:31)
at eval code (eval code:1:2)
at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:25003)
at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:5:224)
at j (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7593)
at S (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7059)
at x (",
Symbol()_n.tcfyoms51l2: undefined,
Symbol()_o.tcfyoms51l2: undefined,
Symbol()_p.tcfyoms51l2: undefined,
Symbol()_q.tcfyoms51l2: undefined,
Symbol()_r.tcfyoms51l2: undefined,
Symbol()_s.tcfyoms51l2: undefined,
Symbol()_t.tcfyoms51l2: undefined,
Symbol()_u.tcfyoms51l2: undefined,
Symbol(rxSubscriber)_m.tcfyoms51l2: undefined,
zoneAwareStack: undefined
}
"SyntaxError: Syntax error
at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:25003)
at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:5:224)
at j (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7593)
at S (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7059)
at x (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6096)
at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6268)
at Anonymous function (eval code:20:1)
at Anonymous function (eval code:1:31)
at eval code (eval code:1:2)
at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:25003)
at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:5:224)
at j (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7593)
at S (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7059)
at x ("
Error: Uncaught (in promise): Error: Syntax error
Evaluating http://mytest.server.domain/Scripts/my-component.js
Evaluating http://mytest.server.domain/Scripts/app.module.js
Evaluating http://mytest.server.domain/Scripts/main.js
Loading main
SyntaxError: Syntax error
at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:25003)
at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:5:224)
at j (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7593)
at S (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7059)
at x (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6096)
at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6268)
at Anonymous function (eval code:20:1)
at Anonymous function (eval code:1:31)
at eval code (eval code:1:2)
at Pe (https://cdnjs.cloudflare.com/ajax/libs/sys
{
[functions]: ,
__proto__: { },
__zone_symbol__error: { },
__zone_symbol__number: undefined,
description: "Uncaught (in promise): Error: Syntax error
Evaluating http://mytest.server.domain/Scripts/my-component.js
Evaluating http://mytest.server.domain/Scripts/app.module.js
Evaluating http://mytest.server.domain/Scripts/main.js
Loading main
SyntaxError: Syntax error
at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:25003)
at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:5:224)
at j (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7593)
at S (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7059)
at x (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6096)
at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6268)
at Anonymous function (eval code:20:1)
at Anonymous function (eval code:1:31)
at eval code (eval code:1:2)
at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0",
message: "Uncaught (in promise): Error: Syntax error
Evaluating http://mytest.server.domain/Scripts/my-component.js
Evaluating http://mytest.server.domain/Scripts/app.module.js
Evaluating http://mytest.server.domain/Scripts/main.js
Loading main
SyntaxError: Syntax error
at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:25003)
at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:5:224)
at j (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7593)
at S (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7059)
at x (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6096)
at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6268)
at Anonymous function (eval code:20:1)
at Anonymous function (eval code:1:31)
at eval code (eval code:1:2)
at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0",
name: "Error",
number: undefined,
originalStack: undefined,
promise: { },
rejection: { },
stack: "Error: Uncaught (in promise): Error: Syntax error
Evaluating http://mytest.server.domain/Scripts/my-component.js
Evaluating http://mytest.server.domain/Scripts/app.module.js
Evaluating http://mytest.server.domain/Scripts/main.js
Loading main
SyntaxError: Syntax error
at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:25003)
at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:5:224)
at j (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7593)
at S (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7059)
at x (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6096)
at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6268)
at Anonymous function (eval code:20:1)
at Anonymous function (eval code:1:31)
at eval code (eval code:1:2)
at Pe (https://cdnjs.cloudflare.com/ajax/libs/sys",
Symbol()_n.tcfyoms51l2: undefined,
Symbol()_o.tcfyoms51l2: undefined,
Symbol()_p.tcfyoms51l2: undefined,
Symbol()_q.tcfyoms51l2: undefined,
Symbol()_r.tcfyoms51l2: undefined,
Symbol()_s.tcfyoms51l2: undefined,
Symbol()_t.tcfyoms51l2: undefined,
Symbol()_u.tcfyoms51l2: undefined,
Symbol(rxSubscriber)_m.tcfyoms51l2: undefined,
task: { },
zone: { },
zoneAwareStack: undefined
}
await this.authService.logoff();
try/catch
и зарегистрируете потенциальную ошибку? Вы видите ошибку на своем тестовом сервере? - person Bruno Grieder   schedule 06.03.2017process.on('unhandledRejection', (r: Error) => console.log('BUG: Unhandled Rejection', r));
- person Bruno Grieder   schedule 06.03.2017logoff(event)
? Вы.catch()
на нем илиawait
пытаетесь / поймать? - person Bruno Grieder   schedule 06.03.2017IE
(Я хотел написать несколько ругательств, но слишком уважительно отношусь к SO, чтобы сделать это). Да, IE кэшировал, хотя я был в режиме разработки (консоль открыта) И использовал CTRL + F5. Я взял вашу идею, зашел в меню «Параметры» и использовал настройки, чтобы очистить все из кеша. Теперь работает .... - person Igor   schedule 06.03.2017