以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!
BFE.devAI解答 - JavaScript 代码题
73. 实现 Observable fromEvent()
实现思路:
- 创建一个 Observable 对象。
- Observable 的 subscribe 方法中添加对传入的 DOM 节点的事件监听,并将事件作为 next 发送。
- 当 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));