rxjs里面的concatAll中

rxjs里面的concatAll中

请问 concatAll 里面缓存机制如何实现的?

举个例子

import { concatAll, interval, take, map } from 'rxjs'
const ho$ = interval(1000)
  .pipe(take(2))
  .pipe(
    map(x => interval(1500).pipe(map(y => x + ':' + y), take(2)))
  )

const concat$ = ho$.pipe(concatAll())
concat$.subscribe({
  next: value => console.log('concat:', value),
  complete: () => console.log('concat complete')
})

内部每个可观察对象至少需要3秒才能全部发送完毕值,而源可观察对象每隔1秒发送一个值,请问这个缓存机制内部是如何实现的?

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

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

1回答
Brian 2024-08-23 20:54:23

应该是有一个队列,这个要云看concatAll的源码了,concatAll把observable进行串行处理

https://img1.sycdn.imooc.com/climg/66c886780963bdba26001438.jpg

可以看看官方源码

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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