【问题标题】:For each RxJS Operator you import, you should now import from 'rxjs/operators' and use the pipe operator`对于您导入的每个 RxJS 运算符,您现在应该从 'rxjs/operators' 导入并使用管道运算符`
【发布时间】:2018-07-06 04:52:08
【问题描述】:
  • 我正在从 Angular 2 升级到 Angular 5
  • 我使用了以下链接并进行了更新。 https://angular-update-guide.firebaseapp.com/
  • 一步一步做,不知道如何更新这一步 对于您导入的每个 RxJS 运算符,您现在应该从 'rxjs/operators' 导入并使用管道运算符`。
  • 我在我的代码库中使用过这样的 Rxjs,但不知道如何更改它

https://hastebin.com/rezelikuku.cs

<!-- language-all: lang-or-tag-here -->

import { Subject } from 'rxjs/Subject';
import { Observable } from 'rxjs/Rx';

@Injectable()
export class playerService {
    public tabvaluechange;
    public copiedEvent;
    private searchBtnEvent = new Subject<any>();
    private changeEvent = new Subject<any>();

【问题讨论】:

    标签: angular rxjs


    【解决方案1】:
    import { Observable } from 'rxjs/Rx'; 
    

    应该是:

    import { Observable } from 'rxjs/Observable';
    

    运算符可能是这样的:(取决于您需要的运算符)

    import { map, switchMap } from "rxjs/operators";
    

    【讨论】:

    • 从 rxjs 6 开始,应该直接从 rxjs 导入,而不是 rxjs/Observable 等。
    • 是的,但版本 6 不是最新的稳定版本,不应在生产中使用。请参阅此处了解更多信息:github.com/ReactiveX/RxJS。此外,最新版本的 Angular 没有附带 Rxjs 6,所以应该使用 rxjs/Observable,而不仅仅是 rxjs
    • 对不起,我不是说你的答案是错误的。我只是想为未来的访客提供一些额外的视角。
    【解决方案2】:

    以下是当前新导入语句的示例:

    import { Observable } from 'rxjs/Observable';
    import { ErrorObservable } from 'rxjs/observable/ErrorObservable';
    import { of } from 'rxjs/observable/of';
    
    import { map, catchError, tap } from 'rxjs/operators';
    

    他们使用新的 lettable(有时称为 pipeable)运算符。你可以这样使用它们:

    getProducts(): Observable<IProduct[]> {
        return this.http.get<IProduct[]>(this.productsUrl)
                        .pipe(
                            tap(data => console.log(JSON.stringify(data))),
                            catchError(this.handleError)
                        );
    }
    

    因此,您无需以流畅的语法将它们链接起来,而是使用 Observable 的管道方法并传入每个运算符来执行。

    注意:新的运算符不能与 JavaScript 关键字冲突,所以 do 现在是 tapcatch 现在是 catchErrormap 仍然是 map

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 2023-02-16
      • 2018-04-26
      • 2020-05-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多