zhoulu00 2019-06-25
首先先简单的介绍一下rxjs,什么是rxjs呢?!其实也就是一个针对于js的响应式扩展库,以此来支持更多的响应式操作,说白了就是扩展了Observable的操作.目前有一个重写的版本:Reactive-Extensions/RxJS,这是一个重写的反应扩展是最新版本生产环境版本。这种改写是为了有更好的性能、更好的模块性,更好的可调试调用堆栈,而尽量向后兼容,一些重大变化,减少API。具体连接:[rxjs][1]
[1]: https://www.npmjs.com/package...
先举个栗子,比如说你有使用Observable的map方法的需求,就想要先import进来,如下(我这里全部导入了,因为Rx下带有map.js文件,所以性质是一样的):
,
然后就可以使用map方法了
(这里的get方法返回的是Observable对象)
那么问题来了,它是怎么去扩展的呢?!我们来看看map.js的源码吧
你会看到这里对从第一个require语句中导入模块对象的Observalbe的原型对象做了处理,添加了一个property,就是这个property使得所有的Observable对象都扩展了这个property.想要继续深入的大佬可以继续看相对应的这个方法的具体实现,这里就不在多说(require的方式也是类似不再多说).有说得不对的地方还望不吝赐教