要明确的是,我希望能够提供关于RxJS及其与JavaScript演变有何关系的事实信息,而不是关于RxJS有多好的意见等等。
我的问题是:RxJS(https://github.com/Reactive-Extensions/RxJS)是否具有前瞻性的polyfill,因为Object.observe等等尚未成为浏览器的标准,或者它是否从根本上提供了超出范围的东西本机JS提供的和超出了JS标准在可预见的未来所能提供的内容? (当然,或许有一天本土的JS可能会有X,Y,Z这些目前还没有出现在我们面前;我对那些猜测并不感兴趣。)也许它是一个组合。
我对这个问题的兴趣/兴趣在于考虑在应用程序中学习和实现RxJS的投入,与可用的原生JS解决方案的时间表进行权衡,和/或是否还有其他需要考虑的因素我没有提到过在这里。
答案 0 :(得分:28)
RxJS作为Rx.NET的JavaScript端口诞生。它不是Object.observe
的前瞻性填充物。
RxJs是一个用于处理异步操作的库,特别强调多值操作。该库为开发人员提供了一种通用的“语言”,他们可以使用它来编写功能代码来操纵异步流,无论流源是什么。相同的“语言”适用于UI事件,计时器事件,对象变异观察,动画帧,ajax调用,websocket消息,webworker消息,承诺等的任意组合
Object.observe
是一种观察对象变化的机制。 RxJS不提供此功能。但是RxJS补充了这个功能:随着时间的推移,对象会发生变化,它可以被认为是异步对象变更通知的来源。将这些观察结果转换为RxJS源(例如Rx.Observable.observeObject(someObject)
之类的东西)是相当简单的,这样就可以将对象更改作为另一个异步RxJs流与所有大量工具RxJS一起使用提供给你。
答案 1 :(得分:0)
RxJs是帮助我们进行反应式编程的库。
反应式编程是一种开发模式,适用于由UI事件,HTTP请求,文件系统,缓存等创建的异步数据流。因此,数据流是按时间顺序进行的持续事件序列。流可以发出值,错误和状态信号。
Observable是观察这些流并触发流中发生的任何事情的功能。观察者可以订阅观察者。
参考 - http://technobelities.blogspot.in/2017/02/rxjs-quick-start.html
根据MSDN - Reactive Extensions(Rx)是一个库,用于使用可观察序列和LINQ样式查询运算符组合异步和基于事件的程序。 Reactive Extensions将所有这些数据序列表示为可观察序列。应用程序可以订阅这些可观察序列,以便在新数据到达时接收异步通知。