rxjs中的

rxjs中的

rxjs里面的 Observable 中的 pipe 方法与map、filter管道操作符的实现逻辑是怎么样的?rxjs 7.8.1 源码互动吧

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
Brian 2024-08-19 22:25:41

rxjs里面的 Observable 中的 pipe 方法与map、filter管道操作符的实现逻辑是怎么样的

——具体的逻辑要看rxjs的github,可以直接在github它的仓库来搜索https://github.com/ReactiveX/rxjs


平时在使用的时候,不用每个方法的源码都需要掌握,rxjs的reference的参考: https://rxjs.dev/api



  • 提问者 慕粉3946981 #1

    如果没有了解源码的确很难回答我这个问题。
    我也只是rxjs入门水平,勉强实现 Observable (包括pipe与退订机制)、 Subject、map、filter、timer、asyncScheduler 调度 (保持与官方API使用与运行一致)

    2024-08-19 22:48:32
  • 提问者 慕粉3946981 #2

    我简单描述一下,

    pipe 内部的逻辑:调用了 pipeFromArray(operations)(this)

    operations就是 map(fn) 的返回值,pipeFromArray(operations)返回值只可能有3种情况

    1. 返回一个identity函数,就是把传递的this原样返回,this是原可观察对象

    2. 返回一个 fns[0] 函数这个 fns[0] 是 map(fn) 的调用的返回值,也是一个函数

    3. 通过 reduce 依次迭代调用每个 map(fn)返回值函数,其中初始化值是原可观察对象,然后返回值函数会当作下一个返回值函数调用运行
    map接收的 project 映射函数,map返回一个函数,返回的这个函数接收上一个可观察对象,订阅、然后返回一个新的可观察对象。
    这个东西主要是依赖闭包、递归。

    2024-08-19 23:07:11
  • Brian 回复 提问者 慕粉3946981 #3

    ok,非常Nice啊


    这种对源码的探索精神可以保留~~,后面可以总结成笔记,发到Q群与大家分享~

    2024-08-27 16:40:20
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

前端高级工程师-大前端
  • 参与学习       324    人
  • 解答问题       407    个

全新打造“技术成长&职业破局”双高体系,深度打通“全栈 + 全流程 +多端+ 提效+AI赋能”,递进式锤炼思维与高阶技能,高效实现能力跃迁,助力成为“驾驭全局,深广兼备,打通多端全栈”的高级工程师

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师