【发布时间】:2021-01-16 19:18:05
【问题描述】:
我继承了一些旧的RxJs 5 代码,闻起来很尴尬:
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 引入了重大更改,其中 of 和 mapTo 不再可链接。这会是正确的重构方式吗?
return of(tag)
.filter(() => isAllowedToAdd)
.pipe(mapTo(tag));
【问题讨论】:
-
就
of(tag).pipe(filter(() => isAllowedToAdd)) -
请将
const isAllowedToAdd = foundTag ? false : true;更改为const isAllowedToAdd = !foundTag;
标签: rxjs observable rxjs5 rxjs6