Ответ 1
Я знаю о спецификации Promises A +, но это, похоже, имеет дело с
.then()
Да. Цель Promises/A + spec состоит в том, чтобы "подробно описать поведение метода then, предоставляя совместимую базу, которая может быть реализована всеми реализационными реализациями Promises/A + зависит от того, чтобы обеспечить", а также описывает обещание ассимиляции, то есть как преобразовать объект, похожий на обещание, в "реальное" обещание вашей собственной библиотеки. Одним словом, он фокусируется на взаимодействии, указывая минимальный интерфейс.
Я не могу найти стандарты для всех других полезных функций.
Да. Каждая библиотека определяет свою собственную. "Стандарты" появляются, когда какая-либо особенность присутствует (и копируется) для многих реализаций.
Моя мотивация к желанию понять, как выглядит текущая и будущая разработка стандартов, заключается в том, чтобы знать, какие текущие функции, предлагаемые в различных библиотеках, с большей вероятностью согласуются с будущими стандартами и которые не так, я могу написать код, который понадобится меньше обслуживания в этой области в будущем.
Вероятно, просмотр проблемных обсуждений больших реализаций - лучшая идея. Однако большинство предлагаемых функций относительно легки для polyfill.
Золотым стандартом будут ES6 и ES7. Регулярно проверяйте список рассылки esdiscuss для обсуждения функций, вопросов об использовании и новых черновиков.
Я вижу Promise.all() в спецификации спецификации ES6, но не вижу других.
Если вы посмотрите более внимательно, раздел обещания:
- Конструктор
Promise
,Promise.reject
иPromise.resolve
-
Promise.all
иPromise.race
-
Promise.prototype.catch
иPromise.prototype.then
.finally()
,.catch()
,.spread()
,.settle()
-
finally
обсуждался на esdiscuss (например, здесь), но, вероятно, не попадет в ES6. - см. выше для
catch
-
spread
заменяется оператором спреда и деструктурированием -
settle
может быть реализован с помощьюall
или, по крайней мере, с использованием алгоритма, очень близкого кall
spec