# learn-rxjs
**Repository Path**: yanyunchangfeng/learn-rxjs
## Basic Information
- **Project Name**: learn-rxjs
- **Description**: learn RxJs
- **Primary Language**: TypeScript
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 4
- **Forks**: 2
- **Created**: 2019-05-28
- **Last Updated**: 2023-06-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[English](README.en.md) | 简体中文
## 介绍
你好,我是[燕云长风](https://yanyunchangfeng.github.io)。
寓意:结合李白著名的边塞诗《关山月》取【燕云长风】—— 长风几万里,吹度玉门关。
## RXJS讲解演示
## 创建类操作符
* [formEvent](src/app/create-operators/from-event.ts)
* [from](src/app/create-operators/from.ts)
* [of](src/app/create-operators/of.ts)
* [interval](src/app/create-operators/interval.ts)
* [timer](src/app/create-operators/timer.ts)
* [never](src/app/create-operators/never.ts)
* [throwError](src/app/create-operators/throw-error.ts)
* [empty](src/app/create-operators/empty.ts)
* [range](src/app/create-operators/range.ts)
* [defer](src/app/create-operators/defer.ts)
* [generate](src/app/create-operators/generate.ts)
* [create](src/app/create-operators/create.ts)
* [ajax](src/app/create-operators/ajax.ts)
* [fromEventPattern](src/app/create-operators/from-event-pattern.ts)
## 工具类操作符
* [tap](src/app/util-operators/tap.ts)
* [delay](src/app/util-operators/delay.ts)
* [delayWhen](src/app/util-operators/delay-when.ts)
* [dematerialize](src/app/util-operators/dematerialize.ts)
* [materialize](src/app/util-operators/materialize.ts)
* [timeInterval](src/app/util-operators/time-interval.ts)
* [timeout](src/app/util-operators/time-out.ts)
* [timestamp](src/app/util-operators/time-stamp.ts)
## 过滤类操作符
* [debounceTime](src/app/filter-operators/debounce-time.ts)
* [debounce](src/app/filter-operators/debounce.ts)
* [distinct](src/app/filter-operators/distinct.ts)
* [distinctUntilChanged](sr*pp/filter-operators/distinct-until-changed.ts)
* [distinctUntilKeyChanged](src/app/filter-operators/distinct-until-key-changed.ts)
* [filter](src/app/filter-operators/filter.ts)
* [reduce](src/app/filter-operators/reduce.ts)
* [scan](src/app/filter-operators/scan.ts)
* [take](src/app/filter-operators/take.ts)
* [takeUtil](src/app/filter-operators/take-until.ts)
* [first](src/app/filter-operators/first.ts)
* [last](src/app/filter-operators/last.ts)
* [throttle](src/app/filter-operators/throttle.ts)
* [throttleTime](src/app/filter-operators/throttle-time.ts)
* [audit](src/app/filter-operators/audit.ts)
* [auditTime](src/app/filter-operators/audit-time.ts)
* [sample](src/app/filter-operators/sample.ts)
* [sampleTime](src/app/filter-operators/sample-time.ts)
* [single](src/app/filter-operators/single.ts)
* [skipLast](src/app/filter-operators/skip-last.ts)
* [elementAt](src/app/filter-operators/element-at.ts)
* [ignore-elements](src/app/filter-operators/ignore-elements.ts)
* [skipUntil](src/app/filter-operators/skip-until.ts)
* [takeWhile](src/app/filter-operators/take-while.ts)
* [skipWhile](src/app/filter-operators/skip-while.ts)
* [min](src/app/filter-operators/min.ts)
* [max](src/app/filter-operators/max.ts)
## 转换类的操作符
* [map](src/app/transform-operators/map.ts)
* [concatMap](src/app/transform-operators/concat-map.ts)
* [buffer](src/app/transform-operators/buffer.ts)
* [bufferCount](src/app/transform-operators/buffer-count.ts)
* [bufferTime](src/app/transform-operators/buffer-time.ts)
* [bufferToggle](src/app/transform-operators/buffer-toggle.ts)
* [bufferWhen](src/app/transform-operators/buffer-when.ts)
* [exhaustMap](src/app/transform-operators/exhaust-map.ts)
* [exhaustAll](src/app/transform-operators/exhaustAll.ts)
* [expand](src/app/transform-operators/expand.ts)
* [groupBy](src/app/transform-operators/group-by.ts)
* [pairwise](src/app/transform-operators/pairwise.ts)
* [partition](src/app/transform-operators/partition.ts)
* [window](src/app/transform-operators/window.ts)
* [windowCount](src/app/transform-operators/window-count.ts)
* [windowToggle](src/app/transform-operators/window-toggle.ts)
* [windowWhen](src/app/transform-operators/window-when.ts)
* [windowTime](src/app/transform-operators/window-time.ts)
* [repeat](src/app/transform-operators/repeat.ts)
* [toArray](src/app/transform-operators/to-array.ts)
## 合并类的操作符
* [combineLatest](src/app/merge-operators/combine-latest.ts)
* [concat](src/app/merge-operators/concat.ts)
* [merge](src/app/merge-operators/merge.ts)
* [startWith](src/app/merge-operators/start-with.ts)
* [zip](src/app/merge-operators/zip.ts)
* [withLatestFrom](src/app/merge-operators/with-latest-from.ts)
* [race](src/app/merge-operators/race.ts)
* [combineLatestAll](src/app/merge-operators/combine-latest-all.ts)
* [concatAll](src/app/merge-operators/concat-all.ts)
* [endWith](src/app/merge-operators/end-with.ts)
* [forkJoin](src/app/merge-operators/fork-join.ts)
## 条件类的操作符
* [defaultIfEmpty](src/app/conditional-operators/default-if-empty.ts)
* [iif](src/app/conditional-operators/iif.ts)
* [find](src/app/conditional-operators/find.ts)
* [findIndex](src/app/conditional-operators/find-index.ts)
* [count](src/app/conditional-operators/count.ts)
* [every](src/app/conditional-operators/every.ts)
* [squenceEqual](src/app/conditional-operators/squence-equal.ts)
## 高阶操作符
* [mergeMap](src/app/senior-operators/merge-map.ts)
* [switchMap](src/app/senior-operators/switch-map.ts)
* [mergeScan](src/app/senior-operators/merge-scan.ts)
* [mergeAll](src/app/senior-operators/merge-all.ts)
## 多播操作符
* [share](src/app/multicast-operators/share.ts)
* [shareReplay](src/app/multicast-operators/share-replay.ts)
## Subject Class
* [Subject](src/app/subject-class/subject.ts)
* [BehaviorSubject](src/app/subject-class/behavior-subject.ts)
* [ReplaySubject](src/app/subject-class/replay-subject.ts)
* [AsyncSubject](src/app/subject-class/replay-subject.ts)
## 自定义操作符
* [takeEveryNth](src/app/custom-operators/takeEveryNth.ts)
## Observable Custom
* [Observable](src/app/my-observable/index.ts)
## 系列项目
| 名称 | 描述 |
| ---- | ---- |
| NiceFish(美人鱼) | 这是一个系列项目,目标是示范前后端分离的开发模式:前端浏览器、移动端、Electron 环境中的各种开发模式。后端有两个版本:SpringBoot 版本和 SpringCloud 版本,http://git.oschina.net/mumu-osc/NiceFish/ |
| NiceFish-React | 这是 NiceFish 的 React 版本,基于React 18.0.0 ,使用 Antd、Inversify、 定制版 Bootstrap开发。 https://gitee.com/mumu-osc/NiceFish-React|
| nicefish-ionic | 这是一个移动端的 demo,基于 ionic,此项目已支持 PWA。http://git.oschina.net/mumu-osc/nicefish-ionic |
| NiceBlogElectron | 这是一个基于 Electron 的桌面端项目,把 NiceFish 用 Electron 打包成了一个桌面端运行的程序。这是由 ZTE 中兴通讯的前端道友提供的,我 fork 了一个,有几个 node 模块的版本号老要改,如果您正在研究如何利用 Electron 开发桌面端应用,请参考这个项目,https://github.com/damoqiongqiu/NiceBlogElectron|
| OpenWMS | 用来示范管理后台型系统的最佳实践,https://gitee.com/mumu-osc/OpenWMS-Frontend|
| nicefish-springboot | 用来示范前后端分离模式下,前端代码与后端服务的对接方式,已经完成了基线版本,并且在腾讯云上面做了实际的部署。代码仓库在这里: https://gitee.com/mumu-osc/nicefish-spring-boot ,腾讯云上的演示地址在这里: http://118.25.136.164 ,以此为基础,你可以继续开发出适合自己业务场景的代码。|
| nicefish-springcloud | 用来示范前后端分离模式下,前端代码与分布式后端服务的对接方式,即将完成,代码最近放出。|
## 单元测试
```
yarn test or npm run test
```
## 打包分析
```
yarn build-analyzer or npm run build-analyzer
```
## 社交主页
* [燕云长风知乎](https://zhihu.com/people/hbxyxuxiaodong)
* [燕云长风 github](https://github.com/yanyunchangfeng)
* [燕云长风 gitee](https://gitee.com/yanyunchangfeng)
## 开源许可证
MIT