Dart Streams API(带有rxdart)与其他反应式库(如RxJava和RxJS)之间的主要区别是什么?
现在,我正在尝试将现有反应式角度应用程序(基于RxJS)的逻辑移植到颤振。我在dart streams API中遇到了很多问题,它的行为似乎与其他Rx实现完全不同 以下方面的主要区别是什么:Dart Streams API(带有rxdart)与其他反应式库(如RxJava和RxJS)之间的主要区别是什么?,stream,dart,flutter,reactive-programming,Stream,Dart,Flutter,Reactive Programming,现在,我正在尝试将现有反应式角度应用程序(基于RxJS)的逻辑移植到颤振。我在dart streams API中遇到了很多问题,它的行为似乎与其他Rx实现完全不同 以下方面的主要区别是什么: 错误和完成事件 null/void值处理 流可重用性 多播(publish,refcount,shareReplay) 订阅管理 ?来自: 在许多情况下,流和可观察对象的工作方式相同。然而,如果您习惯了标准的Rx观测值,那么流api的一些特性可能会让您感到惊讶。我们在下表中列出了帮助人们理解差异的表格
- 错误和完成事件
/null
值处理void
- 流可重用性
- 多播(
,publish
,refcount
)shareReplay
- 订阅管理
这个问题对StackOverflow来说太宽泛了。StackOverflow用于具体的编程问题。正确回答这个问题可能会成为一篇30页的文章。rxdart和rxjs之间的区别直接写在rxdart上Readme@R我不能在RXDARTiIF的自述文件中找到差异列表,甚至“RXJS”一词,你有一个特定的场景失败了,还不清楚为什么,请考虑写一个
┌────────────────────────────────────────────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬───────────────────────────────────────┐
│ Situation │ Rx Observables │ Dart Streams │
├────────────────────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────────────────────────────────────┤
│ An error is raised │ Observable Terminates with Error │ Error is emitted and Stream continues │
│ Cold Observables │ Multiple subscribers can listen to the same cold Observable, each subscription will receive a unique Stream of data │ Single subscriber only │
│ Hot Observables │ Yes │ Yes, known as Broadcast Streams │
│ Is {Publish, Behavior, Replay}Subject hot? │ Yes │ Yes │
│ Single/Maybe/Complete ? │ Yes │ No, uses Dart Future │
│ Support back pressure │ Yes │ Yes │
│ Can emit null? │ Yes, except RxJava │ Yes │
│ Sync by default │ Yes │ No │
│ Can pause/resume a subscription*? │ No │ Yes │
└────────────────────────────────────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴───────────────────────────────────────┘