Como resolver uma promessa várias vezes?

Pode parecer estranho, mas estou procurando uma maneira de resolver uma promessa várias vezes. Existem abordagens para tornar isso possível?

Pense no seguinte exemplo:

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'));
  });
};

E então .then ():

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

Deve dar o seguinte resultado:

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

Então, eu sei que existem bibliotecas para transmitir dados, mas estou realmente procurando uma abordagem nativa que não seja de callbak para conseguir isso.

questionAnswers(1)

yourAnswerToTheQuestion