使用RXJS 5进行分页搜索

问题描述

我正在尝试对搜索进行分页,并且需要防止其将上一次搜索的结果列表串联起来。

Ex搜索:%Dog%

第一页结果: “狗吠”,“狗叫”,“狗痒”

结果的第二页: “狗吠”,“狗叫”,“狗痒”,“狗跳”,“狗吃”,“狗坐”

搜索:%Cat%

第一页结果: “猫喵”,“猫痒”,“猫跑”

结果的第二页: “猫喵”,“猫痒”,“猫跑”,“猫跳”,“猫吃”,“猫坐”

代码

const offsetId$ = new Rx.BehaviorSubject(null);
const fooBar$ = new Rx.BehaviorSubject(null);

const observable = Rx.Observable
    .combineLatest(offsetId$,fooBar$)
    .startWith([])
    .switchMap(([offsetId,fooBar]) => fooBarCollection.find({
        fooBar: new RegExp("^" + fooBar,"i")
    },{
        skip: offsetId * 200,limit: 200
    }).debounce(() => Rx.Observable.timer(10)))
    .scan((acc,value) => acc.concat(value));
    
observable.subscribe((result) => {
    console.log(result);
});

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)