promises パターンと同様に、addEventListener/etc メソッドでオブジェクトを汚染する必要を回避するイベント パターンを探しています。オブジェクトを返すことができるようにしたいと考えています。このオブジェクトは、複数回「解決」するだけでなく、キャンセルすることもできます。
たとえば、次のような「間隔」オブジェクトを返すメソッドを作成する場合があります。
var ticker = createTicker(1000);
var subscription = ticker.then(function() { console.log('tick') });
... later on ...
subscription.cancel();
ここでの主な違いは、promise と同様にイベントが標準化されているため、イベント名を知らなくてもサブスクライブできますが、promise とは異なり、「完了」は複数回発生する可能性があり、キャンセルされることもあります (これはremoveEventListener と同等です)。
プログレスハンドラーを複数のコールバックに使用でき、完全なハンドラーが使用されないなど、これがプロミスで合法であるかどうかを確認することに興味がありますが、さらに重要なのは、プロミスからのサブスクライブを解除するという概念があることです。
これが当てはまらず、約束がこのシナリオに特化している場合、私が説明したことを行うための標準化されたパターンはありますか?