この解答例は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);
    };
  });
};

説明:

  1. fromEvent()関数はnodeeventNameの2つの引数を持ちます。
  2. Observableコンストラクタを使ってObservableオブジェクトを作成します。
  3. イベントハンドラ関数を作成し、Observableのnext()メソッドを呼び出します。
  4. node.addEventListener()を使用して、イベントリスナーを登録します。
  5. Observableからサブスクライブ解除する場合、node.removeEventListener()を呼び出します。サブスクライブ解除時に行う必要があるのは、要素に対する参照を保持し続けるためです。