以下为ChatGPT自动生成的解答,正确与否请自行判断。

BFE.devAI解答 - JavaScript 代码题
73. 实现 Observable fromEvent()

实现思路:

  1. 创建一个 Observable 对象。
  2. Observable 的 subscribe 方法中添加对传入的 DOM 节点的事件监听,并将事件作为 next 发送。
  3. 当 Observable 的 unsubscribe 被执行时,移除对该节点事件的监听器。

代码实现如下:

function fromEvent(node, type) {
  return new Observable((subscriber) => {
    const handler = (event) => subscriber.next(event);
    node.addEventListener(type, handler);
    return () => node.removeEventListener(type, handler);
  });
}

使用示例:

const source = fromEvent(document, 'click');
source.subscribe((e) => console.log(e));