¿Qué es * como * una promesa pero que puede resolver tiempos múltiples?

Estoy buscando un mecanismo de publicación / suscripción que se comporte como una promesa, pero que pueda resolverse varias veces y que se comporte como un evento, excepto si se suscribe después de que se haya producido una notificación que se activa con el valor más reciente.

Estoy consciente denotify, perodeferred.notify es sensible al orden, de modo que se comporta como un evento. p.ej:

d.notify('notify before'); // Not observed :(
d.promise.progress(function(data){ console.log(data) });
d.notify('notify after');  // Observed
setTimeout(function(){ d.notify('notify much later') }, 100); // Also Observed

violín:http://jsfiddle.net/foLhag3b/

El sistema de notificación que me gustaría es una buena opción para un componente de la interfaz de usuario que debe actualizarse para reflejar el estado de los datos detrás de él. En estos casos, no desea preocuparse por si los datos han llegado o no, y desea actualizaciones cuando lleguen.

Quizás esto es similar aUI de modo inmediato, pero es distinto porque está basado en mensajes.

El estado del arte para la actualización de la interfaz de usuario basada en mensajes, que yo sepa, es algo que utiliza una promesa o devolución de llamada para inicializar, luego también vincula un evento de actualización:

myUIComponent.gotData(model.data);
model.onUpdate(myUIComponent.gotData); // doing two things is 2x teh workz :(

No quiero tener que hacer las dos cosas. No creo que nadie deba hacerlo, el caso de uso es bastante común para abstraer.

model.whenever(myUIComponent.gotData); // yay one intention === one line of code

Podría construir un mecanismo para hacer lo que quiero, pero quería ver si ya existe un mecanismo pub / sub como este. Mucha gente inteligente ha hecho mucho en CS y creo que este concepto debe existir, solo estoy buscando el nombre.

Para ser claros, no estoy buscando cambiar un marco completo, digamos Angular o React. Estoy buscando solo un mecanismo de pub / sub. Preferiblemente, una implementación de un concepto conocido con un nombre elegante comonotifr olemme-kno otouch-base.

Respuestas a la pregunta(1)

Su respuesta a la pregunta