rxjs 你们拿这个做什么
看了一下,学习了一下,感觉很刁,但是不知道怎么使用,大佬们,指导一下,这个使用场景是什么
看了一下,学习了一下,感觉很刁,但是不知道怎么使用,大佬们,指导一下,这个使用场景是什么
以前对 RxJs 了解有限,因为业务复用杂想应用下 RxJs 看到底有没有那么香,学起来确实要费点劲的,因为 RxJs 理念很不一样,文档也很学术,例子不接地气,担是学成会用之后,爱不释手,写起来感觉很爽,相见恨晚。
例子的话,说个场景,比如有个功能同时有以下需要:
多个异步结果合并(且其中某个异步出错则 fallback 不终止执行)
延迟执行
出错重试
异常后根据条件判断是抛出异常还是 fallback
各种异步请求依赖和嵌套,请求数据二次加工处理
RxJs 可以清晰优雅的实现这个功能。
感觉你说的 promise 好像都可以实现,不知道是否可以说说它和 promise 对异步处理的优劣点
@soulmt 这个不是 angular 的事情,所有框架都可以受益于 rxjs 。关于应用场景,我举一个例子:
你有一个搜索栏,搜索学生信息。这个搜索功能提供 3 个 filter:关键词 、学生性别、页码 。
这个时候,如果你想要任何一个筛选条件改变时,都重新获取数据,rxjs 只需要用一个 combineLatest 操作符。
如果你想要当关键词和分页器页码改变时,才重新获取数据,你只需要 combineLatest 关键词和分页器页码,然后再 withLatest 学生性别筛选输入。
rxjs 有很多操作符,每一个操作符都对应着常见的流的组合行为,每一个操作符都是由很多行代码写成的。
所以,简单来说,rxjs 每一个操作符都能够替代你十行甚至几十行代码。这个也可以视作相对于 async/await 的优点。
—
最后:rx 和 rxjs 来自于微软,来自于.Net ,来自于 System.Reactive.Linq. Shout out to Microsoft!
能具体讲讲你们如何用 Rx 处理 WebSocket 问题吗?想了解一下