Я пытаюсь реализовать собственное обещание на IE9 +, и кажется, что Internet Explorer не распознает класс/объект Promise. Я искал в http://caniuse.com/#search=Promise и видел, что IE не имеет объекта Promise. Но это странно, потому что jQuery и Angular работает с promises и , работая в IE9 +. Возможно, они реализуют свои собственные обещания?? ** Могу ли я реализовать свое собственное обещание? **
Есть ли способ реализовать promises в ie9 +
Ответ 1
Какой "родной"
Быть родным означает, что он написан внутри базы кода браузера, а не кода пользователя. Чтобы внедрить promises изначально в IE9, вам нужно будет получить копию исходного кода IE9 от Microsoft, закодировать их, скомпилировать и распространять. Хотя это выполнимо, что это не очень жизнеспособный вариант.
Использование promises сегодня
С другой стороны, существует несколько библиотек обещаний, которые существуют в userlevel. Совершенно возможно реализовать свое обещание - вот отличное сообщение в блоге о том, как.
Вы можете свободно включать библиотеку, например bluebird (bluebird) или Q, которые соответствуют этому API, и в дальнейшем будут продолжать работать с ES6 promises. Стоит отметить, что Bluebird, например, работает на IE6 +, поэтому в вашем случае не должно быть проблем.
Например здесь Angular реализация и здесь реализация jQuery - Angular больше читаемый, на мой взгляд.
Стандартная
Также обратите внимание, что в отличие от вышеприведенного кода promises стандартизованы спецификацией Promises/A + с такими библиотеками, как Angular, и библиотеки, такие как jQuery, работают над соответствием и, вероятно, будут в следующей версии. Родные promises также соответствуют стандарту и дополняют его.
Ответ 2
Здесь реализация обещания Я написал себя в typescript и протестирован, чтобы полностью работать с IE8 вверх. Да. он полностью соответствует Promises/A + (и проверен).
Поскольку он написан в typescript, план должен также получить определение для tsd в следующие дни.