我正在使用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启动时,它发送数据,并在console.log()
运算符和reducer()
运算符内的tap()
中捕获数据。
我可以在reduce()
内部看到数据,但是在tap()
内部什么也没有发生。就像reduce一样,它不返回我要在其中返回的对象。
有人可以帮助我吗? 谢谢