Einmaliges Eventhandling mit Versprechen?

Ziemlich übliches Szenario. Ich möchte einen entkoppelten Code haben, der ein Ereignis auslöst, wenn etwas fertig ist. Dies geschieht nur einmal für den gesamten Anwendungslauf.

Auf der anderen Seite gibt es einen anderen Code, in dem etwas anderes passieren soll, wenn zwei oder mehr Ereignisse ausgelöst werden. Ich meine wie alle, wie Abhängigkeiten.

Okay, mehr asynchrone Dinge zusammen ... verspricht definitiv, oder?

Dann fing ich an zu überlegen. Ist es wirklich ratsam, Pub / Sub für einmalige Ereignisse zu verwenden? Wäre es nicht besser, einfach ein zugängliches Versprechen zu machen, das sich auflöst, sobald dieses Ereignis ausgelöst wird? Das würde jedoch bedeuten, dass ich diesen entkoppelten Code irgendwie miteinander verbinden muss. Eine Sache ist, EventEmitter gemeinsam zu nutzen, aber abhängig von Code zu sein, um tatsächlich ein Versprechen zu erstellen ... das klingt ziemlich schlecht.

Also denke ich über eine Art Mischung nach. Ein Modul haben, in dem andere Module nach dem Namen "event" fragen und ein vorbereitetes Promise-Objekt erhalten können. Ein anderes Modul sollte dann dieses Ereignis auslösen und dieses Ereignis auf diese Weise effektiv erfüllen / zurückweisen.

var promisedLand = require('./promisedLand');
promisedLand.waitFor('event'); // returns promise
promisedLand.resolve('event', value);
promisedLand.reject('event', error);

Was halten Sie von dieser Lösung? Gibt es eine Chance, dass es bereits eine Lösung wie diese gibt?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage