RxJS 中的 Reduce 不返回对象
2019-09-16
587
我正在使用 Angular,但是
reduce()
运算符没有返回我的对象。我的代码如下:
我创建了一个接口
interface Example {
page?: number;
size?: number;
name?: string;
}
并且我声明了一个主题来创建一个数据流,在管道运算符内部,我想从通过
this.example$.next()
发送的数据创建一个对象。
exemple$ = new Subject<Example>();
get$ = this.exemple$
.pipe(
startWith({}),
reduce(
(obj, item) => {
Object.keys(item).forEach(data => (obj[data] = item[data]));
console.log('obj', obj);
return obj;
},
{ page: 15, size: 10 } as Example
),
tap(console.log)
)
.subscribe();
ngOnInit() {
this.exemple$.next({ name: 'John Paul' });
}
当 Angular 启动时,它会发送数据,然后我在
reducer()
运算符和
tap()
运算符内的
console.log()
中捕获它。
我可以看到
reduce()
内部的数据,但是
tap()
内部什么也没有发生。就像 reduce 没有返回我在其中返回的对象一样。
有人能帮助我吗? 谢谢