首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RxJs 5 of.filter.mapTo operators -> RxJs 6

RxJs 5 of.filter.mapTo operators -> RxJs 6
EN

Stack Overflow用户
提问于 2020-10-01 12:27:38
回答 1查看 58关注 0票数 1

我继承了一些老的RxJs 5代码,它们看起来很笨拙:

代码语言:javascript
复制
  myFunc = (tag: TagModel): Observable<TagModel> => {
    try {
      const foundTag = this.mappedTags.find((x) => {
        return x.name === tag;
      });
      const isAllowedToAdd = foundTag ? false : true;

      return Observable
        .of(tag)
        .filter(() => isAllowedToAdd)
        .mapTo(tag);

    } catch (err) {
      console.log("err: ", err);
    }
  }

这段代码的目的是创建一个Observable,如果找到它,它的值是tag,否则是空的?它看起来如此复杂(加上一些我不能在这里分享的其他选择)。

RxJs引入了突破性的变化,其中ofmapTo不再可链接。这是重构的正确方式吗?

代码语言:javascript
复制
  return of(tag)
    .filter(() => isAllowedToAdd)
    .pipe(mapTo(tag));
EN

回答 1

Stack Overflow用户

发布于 2020-10-17 12:14:13

下面应该行得通

代码语言:javascript
复制
  myFunc = (tag: TagModel): Observable<TagModel> => {
    try {
      const foundTag = this.mappedTags.find((x) => x.name === tag);
      const isAllowedToAdd = !foundTag;

      return of(tag).pipe(
        filter(() => isAllowedToAdd)
      )
    } catch (err) {
      console.log("err: ", err);
    }
  }

记住要包含import { of } from 'rxjs'import { filter } from 'rxjs/operators'

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

https://stackoverflow.com/questions/64149074

复制
相关文章

相似问题

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