¿Cómo resolver una promesa varias veces?

Puede sonar extraño, pero estoy buscando una manera de resolver una promesa varias veces. ¿Hay algún enfoque para hacer esto posible?

Piense en el siguiente ejemplo:

getPromise() {
  const event = new Event('myEvent');

  setTimeout(() => {
    window.dispatchEvent(event);
  }, 5000);

  setTimeout(() => {
    window.dispatchEvent(event);
  }, 7000);

  return new Promise((resolve) => {
    window.addEventListener('myEvent', () => {
      resolve('some value'));
    });

    resolve('some value'));
  });
};

Y luego .then ():

getPromise().then(data => {console.log(data)})

Debe dar el siguiente resultado:

some value // initial
some value // after 5000ms
some value // after 7000ms

Así que sé que hay bibliotecas para transmitir datos, pero realmente estoy buscando un enfoque nativo que no sea callbak para lograr esto.

Respuestas a la pregunta(1)

Su respuesta a la pregunta