Ответ 1
Отмена promises не будет в ES6, так как ES6 promises очень минимальны.
Работа по аннулированию в пространстве Promises/A + застопорилась, так как мы ждем эволюции библиотеки, чтобы доказать, что один подход явно превосходит. Последнее мышление находится в этой проблеме, что, по-видимому, следует соблюдать большинству библиотек, которые хотят реализовать отмену (более или менее). Ключевыми моментами являются:
- Отмена в качестве частного случая отказа
- Реакции на отмену распространяются вверх в цепочке, а также само отклонение распространяется вниз.
Непонятно, что вы подразумеваете под "просто передайте обещание и поддержите отмену-спецификацию". Вы пытаетесь создать thenables, в предположении, что потребители вашей библиотеки бросят его, но каким-то образом наследуют некоторое поведение отмены после этого? Это было бы немного сложно, особенно потому, что отмена обычно зависит от указанного конструктора Cancellation
, используемого для отклонения обещания. Если бы экосистема отмены была более развита, способ сделать это, вероятно, был бы более простым.
Что касается будущего, ну, это в движении! Один из способов продвижения вперед был бы для кого-то, кто отстаивал бы эволюцию этого предложения отмены в пространстве Promises/A +, получая бай-ин исполнителя от крупных библиотек, таких как Q, RSVP, когда и Bluebird. Тогда многие небольшие библиотеки, скорее всего, купят, и у вас будет то, на что вы, вероятно, могли бы рассчитывать. Если это докажет, что это популярно, вероятно, это будет рассмотрено и для ECMAScript promises!
Но это зависит от многих людей, которые много работают, поэтому посмотрим, произойдет ли это:). Это было чудо для того, чтобы это произошло с базой Promises/A + spec, но кто знает... это может случиться снова!