Typescript 使用reduce Subject而不调用complete
我是RxJS的新手。我使用的是RxJs 5.5.2 为了简单起见,每次调用next时,我都希望返回减少的值。下面是一个示例代码:Typescript 使用reduce Subject而不调用complete,typescript,rxjs,rxjs5,Typescript,Rxjs,Rxjs5,我是RxJS的新手。我使用的是RxJs 5.5.2 为了简单起见,每次调用next时,我都希望返回减少的值。下面是一个示例代码: const sub = new Subject<number>(); const obsesvable = sub.pipe( reduce((a, b) => { return a + b; }, 0) ); obsesvable.subscribe(x => console.log(x)); sub.next(2); s
const sub = new Subject<number>();
const obsesvable = sub.pipe(
reduce((a, b) => {
return a + b;
}, 0)
);
obsesvable.subscribe(x => console.log(x));
sub.next(2);
sub.next(3);
// if I don't call this nothing happens
sub.complete();
现在,如果我不打电话给sub.complete,什么都不会发生
如果我调用sub.complete,我将无法再使用sub.next发送值 看看reduce方法的用法
它只会在流结束时发出,这就是为什么在调用complete之前没有任何内容
如果您希望随时间减少并获得值,则应使用:
因此,您的代码应该是:
const sub = new Subject<number>();
const obsesvable = sub.pipe(
scan((a, b) => {
return a + b;
}, 0)
);
obsesvable.subscribe(x => console.log(x));
sub.next(2);
// output: 2
sub.next(3);
// output: 5