Versprechungen, die nicht am IE11
Ich bin neu in Verspricht auf javascript, so dass ich hoffe, einige können mir mit diesem Problem helfen.
Problem: Versprechen nicht ausführen auf IE11, funktioniert gut in Chrome und FireFox
Frameworks verwendet: ich habe versucht, mit es6-Versprechen.d....ts und bluebird.d....ts gleiche Ergebnis.
Code:
static executeSomething(): Promise<any>
{
console.log("inside executeSomething");
var test= new Promise((resolve, reject)=>
{
console.log("inside Promise");
}).catch(function(error){console.log("error")});
console.log("after promise");
return test;
}
Ergebnisse: auf chrome und Firefox sehe ich alle die Protokolle, sondern auf IE11 sehe ich nur "Innen executeSomething", was bedeutet, das problem liegt beim erstellen der Verheißung.
Ich dachte, es war, weil IE11 nicht unterstützt es6, aber ich bekomme das gleiche Ergebnis mit bluebird, ich hoffe, jemand kann etwas Licht auf meine Frage.
IE11 unterstützt nicht es6 verspricht. kangax.github.io/compat-table/es6/#ie11
InformationsquelleAutor Moy | 2016-02-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie ein Versprechen polyfill in Ihre Seite ein für IE11 zu funktionieren.
Ihren Instinkt zu verwenden es-Versprechen ist richtig, aber Sie müssen auch auf die
.js
- Datei in Ihre html -Den
.d.ts
- Datei geben Sie den TypeScript-compiler ist es Definitionen, aber nicht die Laufzeit. Müssen Sie noch das polyfill in Ihre html-für die es tatsächlich im browser ausgeführt werden.Die größte Sache zu erinnern, bei der Verwendung Schriftlicher oder jede kompilierte Sprache ist der Unterschied zwischen kompilieren Zeit und laufen Zeit.
.d.ts
,.ts
,.tsx
usw. Sind alle kompilieren Zeit-Dateien. Das heißt, diese sind nicht die Dateien, die tatsächlich ausgeführt werden, sondern die Dateien, das erzeugen der runtime-code..js
Dateien sind die Laufzeit - Dateien. Dies sind die Dateien, die ausgeführt werden, durch den browser..d.ts
Dateien nicht code enthalten, sondern eine definition der code - Signatur und sollte daher immer begleitet werden, mit einer entsprechenden.js
- Datei, die im browser ausgeführt wird.Danke!!! dies geschieht nur im IE-nicht sicher, warum, aber das hinzufügen der Referenz ist mein problem gelöst.
haben Sie einen Vorschlag für eine bessere polyfill?
Ich höre lie.js ist ziemlich gut, aber ich bleibe mit bluebird meistens. Auch die core-js-polyfill ist schön.
InformationsquelleAutor SnareChops