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