web-dev-qa-db-ja.com

ie9 +でpromiseを実装する方法はありますか

私はnative promiseIE9 +に実装しようとしていますが、 Explorerは「約束」クラス/オブジェクトを認識しません。 http://caniuse.com/#search=Promise で検索したところ、[〜#〜] ie [〜#〜]Promiseオブジェクトはありません。 jQueryおよびAngularがpromiseおよびIE9 +で動作します。おそらく彼らは自分の約束を実装していますか?**私は自分の約束を実装しますか?**

27
user1019872

「ネイティブ」とは

ネイティブであるということは、ブラウザのコード内にが記述され、ベースであり、ユーザーレベルのコードではないことを意味します。 IE9でプロミスをネイティブに実装するには、MicrosoftからIE9ソースコードのコピーを入手し、それらをコーディングし、コンパイルして配布する必要があります。それは実行可能ですが、あまり実行可能なオプションではありません。

今日の約束の使用

一方、userlevelにはいくつかのpromiseライブラリがあります。独自のプロミス実装を実装することは完全に可能です- 方法に関する素晴らしいブログ投稿があります

bluebirdbluebird )またはQのようなライブラリを自由に含めることができ、このAPIを満たし、今後もES6 Promiseで引き続き機能します。たとえば、BluebirdはIE6 +で実行されるため、問題はないはずです。

たとえば、 Angularの実装 であり、ここに jQueryの実装 です-私の意見では、Angularの方が読みやすいです。

標準

また、上記のコメントに反して、promises =areのように、Angularに準拠し、 jQueryは次のバージョンへの準拠に取り組んでおり、おそらくそうなるでしょう。ネイティブプロミスも標準に準拠し、それをスーパーセットします。

25

約束の実装 私はTypeScriptで自分自身を書いており、IE8以降で完全に動作するようにテストされています。はい。完全にPromises/A +に準拠しています(および テスト済み )。

TypeScriptで書かれているので、計画は次の日にもtsdの定義を取得することです。

4
bogdan.mustiata