この解答例はChatGPTによって生成されています,正しいかは自己判断で。
BFE.devでのAI解答例 - JavaScript コーディング問題
73. Observable fromEvent()を実装する
const fromEvent = (node, eventName) => {
return new Observable((subscriber) => {
const eventHandler = (event) => {
subscriber.next(event);
};
node.addEventListener(eventName, eventHandler);
return () => {
node.removeEventListener(eventName, eventHandler);
};
});
};
説明:
fromEvent()
関数はnode
とeventName
の2つの引数を持ちます。Observable
コンストラクタを使ってObservableオブジェクトを作成します。- イベントハンドラ関数を作成し、Observableの
next()
メソッドを呼び出します。 node.addEventListener()
を使用して、イベントリスナーを登録します。- Observableからサブスクライブ解除する場合、
node.removeEventListener()
を呼び出します。サブスクライブ解除時に行う必要があるのは、要素に対する参照を保持し続けるためです。