В библиотеке jQuery имеется свой аналог промисов. Речь об объектах
jQuery.Deferred. Основное отличие от промисов в более широком функционале, в частности, можно кроме обработчиков успеха / ошибки навешивать еще и обработчики прогресса:
var deferred = $.Deferred();
deferred.progress(function(n) {
console.log('Температура сейчас: ' + n);
});
setTimeout(function() {
deferred.notify('30 градусов.');
}, 3000);
Однако, мне совершенно непонятно как такие обработчики потом снимать, чтобы они не копились.
Пояснение зачем мне это надоАрхитектурно у меня предусмотрен основной поток (он вечный) и множество дочерних (пересоздаются постоянно), что время от времени будут подключатся и смотреть что там происходит в основном потоке. Однако, если дочерний поток завершил работу, то обработчик прослушиватель от него останется в Deferred основного потока и будет занимать ресурсы, что плохо.
Буду признателен за помощь.