RxJS 在项目中单独使用
单独使用RxJS提供的Subject来使用功能
一个组件的construtor中, 我们声明了如下的Subject
this.inputSubject = new Rx.Subject();
// 声明从收到数据,到数据传递给最终的数据订阅者,之间需要经过的数据处理管道
inputSubject
.debounceTime(1000)
.filter(value => value !== 'aa')
.do(value => setTitle(`搜索${value}中...`))
.concatMap(value => Rx.Observable.fromPromise(asyncQuery(value)))
.do(result => setTitle(`搜索${result.value}成功`))
.subscribe(updateList);
之后再在任何地方,我们拥有了对应的数据,需要把这个数据经过我们定义好的数据处理管道之后调用最终的updateList, 只需要如下的调用
<TextInput onChangeText={value => this.inputSubject.next(value)} />
这样的涉及各种异步和时间处理的写法不仅更加优雅, 而且