博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[RxJS] Implement RxJS `concatMap` by Waiting for Inner Subscriptions to Complete
阅读量:6850 次
发布时间:2019-06-26

本文共 967 字,大约阅读时间需要 3 分钟。

Unlike mergeMap and switchMapconcatMap focuses on when "inner" subscriptions "complete" by using a "buffer". Each time concatMap receives a value, it adds each value to a "buffer", waits for previous "inner" subscription to complete, then invokes next with the next value from the "buffer".

 

class MyConcatMapSubscriber extends Subscriber {  innerSubscription;  buffer = [];  constructor(sub, fn) {    super(sub);    this.fn = fn;  }  _next(value) {    const { isStopped } = this.innerSubscription || {      isStopped: true    };    if (!isStopped) {      this.buffer = [...this.buffer, value];    } else {      const o$ = this.fn(value);      this.innerSubscription = o$.subscribe({        next: value => {          this.destination.next(value);        },        complete: () => {          if (this.buffer.length) {            const { first, ...rest } = this.buffer;            this.buffer = rest;            this._next(first);          }        }      });    }  }}

 

 

转载地址:http://fprul.baihongyu.com/

你可能感兴趣的文章
Redis简单介绍之(安装篇)
查看>>
网络协议控件,SSH 安全组件/n software Red Carpet Subscription
查看>>
用户画像从入门到挖坑
查看>>
Flask 上下文(Context)原理解析
查看>>
Oracle EBS R12.1安装步骤
查看>>
oracle db_nk_cache_size
查看>>
MSSQLServer将远端数据库保存到本地
查看>>
mysql行转列
查看>>
使用 firefox 的开发者工具与 DIG 命令行工具,来分析访问站点时的网络连接与 HTTP 请求和响应...
查看>>
jetspeed教程翻译——jetexpress项目门户的自定义
查看>>
华为usg6380 ssh 配置方法
查看>>
抽象工厂模式(Abstract Factory)
查看>>
zval_dtor与zval_ptr_dtor的区别
查看>>
Cisco route-map 源地址路由配置
查看>>
11月6日记
查看>>
[李景山php]每天TP5-20170109|thinkphp5-Model.php-2
查看>>
在windows(64)下安装php开发环境wamp+yaf框架+phpstorm以及TortoiseGit
查看>>
淘宝的IP地址库
查看>>
ORACLE 建库过程总结
查看>>
Comparable与Comparator的区别(转载)
查看>>