首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular rxjs到rxjs 6和rxrs-compat

Angular rxjs到rxjs 6和rxrs-compat
EN

Stack Overflow用户
提问于 2020-03-20 03:38:45
回答 2查看 57关注 0票数 0

我已经尝试发出以下命令:

代码语言:javascript
复制
 npm install --save rxjs-compat

但我找不到rxjs-compat文件夹。不管怎么说,真正的问题是:

代码语言:javascript
复制
 import { Subject } from 'rxjs';
 import { startWith, DebounceTime } from 'rxjs/Operator';
 ...
 ngOnInit() {
  this.products$ = this.searchSubject
    .startWith(this.searchTerm)
    .debounceTime(300)
 }

我看到startWith.js和debounceTime.js都引用了rxjs-compat。这就是我尝试安装它的原因。我认为我的两个导入语句是正确的,但可能不是我的ngOnInit。

EN

回答 2

Stack Overflow用户

发布于 2020-03-20 03:51:51

我相信您所询问的是如何将该代码转换为使用Pipeable Operators

代码语言:javascript
复制
import { startWith, debounceTime } from 'rxjs/operators';
代码语言:javascript
复制
ngOnInit() {
  this.products$ = this.searchSubject
    .pipe(startWith(this.searchTerm), debounceTime(300));
 }
票数 2
EN

Stack Overflow用户

发布于 2020-03-20 04:44:41

rxjs compat的目的是使rxjs v5语法与rxjs v6一起工作。如果你正在写新的代码,应该使用新的语法,这需要管道和导入运算符:

代码语言:javascript
复制
import { startWith, debounceTime } from 'rxjs/operators'

this.products$ = this.searchSubject.pipe(
  startWith(this.searchTerm),
  debounceTime(300)
)

但是,如果您使用的是v5语法:

代码语言:javascript
复制
this.products$ = this.searchSubject
                     .startWith(this.searchTerm)
                     .debounceTime(300)

您只需要安装rxjs-compat即可。除了你的主题之外,你不需要做任何其他的导入,但是这将停止对v7 v7的工作,所以我相信尽快迁移是符合你的利益的,因为rxjs现在正处于测试版中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60763987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档