我继承了一些老的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));发布于 2020-10-17 12:14:13
下面应该行得通
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'
https://stackoverflow.com/questions/64149074
复制相似问题