分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

[RxJS] Implement RxJS `mergeMap` through inner Observables to Subscribe and Pass Values Through

发布时间:2023-09-06 02:16责任编辑:白小东关键词:暂无标签

Understanding sources and subscribers makes it much easier to understand what‘s going on with mergeMap under the hood. Where a typical operator invokes destination.next directly, mergeMap wraps destination.next inside of a new source/subscriber combo so there‘s an "outer" next and an "inner" next.

import { fromEvent, of, Subscriber } from "rxjs"import { ?scan, ?delay, ?mergeMap} from "rxjs/operators"class MyMergeMapSubscriber extends Subscriber { ?constructor(sub, fn) { ???super(sub) ???this.fn = fn ?} ?_next(value) { ???console.log(`outer`, value) ???const o$ = this.fn(value) ???o$.subscribe({ ?????next: value => { ???????console.log(` ?inner`, value) ???????this.destination.next(value) ?????} ???}) ?}}const myMergeMap = fn => source => ?source.lift({ ???call(sub, source) { ?????source.subscribe( ???????new MyMergeMapSubscriber(sub, fn) ?????) ???} ?})const observable$ = fromEvent( ?document, ?"click").pipe( ?scan(i => i + 1, 0), ?myMergeMap(value => of(value).pipe(delay(500))))const subscriber = { ?next: value => { ???console.log(value) ?}, ?complete: () => { ???console.log("done") ?}, ?error: value => { ???console.log(value) ?}}observable$.subscribe(subscriber)

[RxJS] Implement RxJS `mergeMap` through inner Observables to Subscribe and Pass Values Through

原文地址:https://www.cnblogs.com/Answer1215/p/9715051.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved