Статус отмены promises

Самая старая проблема на https://github.com/promises-aplus/cancellation-spec - это (на момент написания статьи) 9 месяцев. Я действительно не мог найти надежный источник информации об объектах отмены на стандарте promises.

Теперь похоже, что функция реализована в bluebird, но, как разработчик библиотеки, я не хочу загромождать свой пакет с полной реализацией обещания.

Какой идентификатор нравится делать, просто передайте обещание и поддерживайте спецификацию отмены.

Где я могу найти эту информацию?

Ответ 1

Отмена promises не будет в ES6, так как ES6 promises очень минимальны.

Работа по аннулированию в пространстве Promises/A + застопорилась, так как мы ждем эволюции библиотеки, чтобы доказать, что один подход явно превосходит. Последнее мышление находится в этой проблеме, что, по-видимому, следует соблюдать большинству библиотек, которые хотят реализовать отмену (более или менее). Ключевыми моментами являются:

  • Отмена в качестве частного случая отказа
  • Реакции на отмену распространяются вверх в цепочке, а также само отклонение распространяется вниз.

Непонятно, что вы подразумеваете под "просто передайте обещание и поддержите отмену-спецификацию". Вы пытаетесь создать thenables, в предположении, что потребители вашей библиотеки бросят его, но каким-то образом наследуют некоторое поведение отмены после этого? Это было бы немного сложно, особенно потому, что отмена обычно зависит от указанного конструктора Cancellation, используемого для отклонения обещания. Если бы экосистема отмены была более развита, способ сделать это, вероятно, был бы более простым.

Что касается будущего, ну, это в движении! Один из способов продвижения вперед был бы для кого-то, кто отстаивал бы эволюцию этого предложения отмены в пространстве Promises/A +, получая бай-ин исполнителя от крупных библиотек, таких как Q, RSVP, когда и Bluebird. Тогда многие небольшие библиотеки, скорее всего, купят, и у вас будет то, на что вы, вероятно, могли бы рассчитывать. Если это докажет, что это популярно, вероятно, это будет рассмотрено и для ECMAScript promises!

Но это зависит от многих людей, которые много работают, поэтому посмотрим, произойдет ли это:). Это было чудо для того, чтобы это произошло с базой Promises/A + spec, но кто знает... это может случиться снова!