angular - node_modules/rxjs/Rx 没有导出成员 'merge'

标签 angular rxjs rxjs5

我的组件:

import {Observable, Subject , merge} from 'rxjs';
import {debounceTime, distinctUntilChanged, filter, map} from 'rxjs/operators';

focus$ = new Subject<string>();
click$ = new Subject<string>();

search = (text$: Observable<string>) => {
        const debouncedText$ = text$.pipe(debounceTime(200), distinctUntilChanged());
        const clicksWithClosedPopup$ = this.click$.pipe(filter(() => !this.instance.isPopupOpen()));
        const inputFocus$ = this.focus$;

        return merge(debouncedText$, inputFocus$, clicksWithClosedPopup$).pipe(
            map(term => (term === '' ? states
                : states.filter(v => v.toLowerCase().indexOf(term.toLowerCase()) > -1)).slice(0, 10))
        );
}

版本:

"rxjs": "^5.5.6",
"@angular/cli": "1.3.2",
"@angular/compiler-cli": "^4.2.4"

我得到错误:

node_modules/rxjs/Rx"' has no exported member 'merge'

最佳答案

merge可以用作 staticinstance 方法。

static 方法使用
从 'rxjs/observable/merge' 导入 { merge };

 return merge(debouncedText$, inputFocus$, clicksWithClosedPopup$).pipe(
            map(term => (term === '' ? states
                : states.filter(v => v.toLowerCase().indexOf(term.toLowerCase()) > -1)).slice(0, 10))
        );

实例方法使用
从 'rxjs/operators' 导入 { merge };

return Observable.merge(debouncedText$, inputFocus$, clicksWithClosedPopup$).pipe(
            map(term => (term === '' ? states
                : states.filter(v => v.toLowerCase().indexOf(term.toLowerCase()) > -1)).slice(0, 10))
        );

Live Demo

关于angular - node_modules/rxjs/Rx 没有导出成员 'merge',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51120793/

相关文章:

rxjs - 如何在rxjs 5中测试使用定时间隔返回可观察值的函数?

javascript - 从同步和异步值创建数组

javascript - 绑定(bind) Angular 模板时自定义属性会导致错误

angular - 如何在html中使用管道变量? Angular 9

javascript - ActivatedRoute.paramMap.switchMap 错误

javascript - RxJS:如何导入 Just

angular - 找不到模块 "@angular/material"

javascript - gsap&Angular - onComplete 触发函数但无法更改变量值

angular - 错误响应中断 valueChanges [Angular2]

javascript - 在 Rxjs 中如何暂停一个数据流并从第二个继续它被暂停了?