私はnative promiseをIE9 +に実装しようとしていますが、 Explorerは「約束」クラス/オブジェクトを認識しません。 http://caniuse.com/#search=Promise で検索したところ、[〜#〜] ie [〜#〜]Promiseオブジェクトはありません。 jQueryおよびAngularがpromiseおよびIE9 +で動作します。おそらく彼らは自分の約束を実装していますか?**私は自分の約束を実装しますか?**
ネイティブであるということは、ブラウザのコード内にが記述され、ベースであり、ユーザーレベルのコードではないことを意味します。 IE9でプロミスをネイティブに実装するには、MicrosoftからIE9ソースコードのコピーを入手し、それらをコーディングし、コンパイルして配布する必要があります。それは実行可能ですが、あまり実行可能なオプションではありません。
一方、userlevelにはいくつかのpromiseライブラリがあります。独自のプロミス実装を実装することは完全に可能です- 方法に関する素晴らしいブログ投稿があります 。
bluebird ( bluebird )またはQのようなライブラリを自由に含めることができ、このAPIを満たし、今後もES6 Promiseで引き続き機能します。たとえば、BluebirdはIE6 +で実行されるため、問題はないはずです。
たとえば、 Angularの実装 であり、ここに jQueryの実装 です-私の意見では、Angularの方が読みやすいです。
また、上記のコメントに反して、promises =areのように、Angularに準拠し、 jQueryは次のバージョンへの準拠に取り組んでおり、おそらくそうなるでしょう。ネイティブプロミスも標準に準拠し、それをスーパーセットします。