【发布时间】:2021-04-04 02:33:06
【问题描述】:
有以下sn-p的代码:
import { interval, race, Subject } from 'rxjs';
import { mapTo } from 'rxjs/operators';
const a$ = new Subject<number>();
const b$ = interval(1000).pipe(mapTo(1));
race([a$, b$]).subscribe(console.log);
a$.subscribe({complete: () => console.log('a$ completed!')});
[1,2,3,4,5,6,7].map(i => a$.next(i));
控制台中的输出是 1...7。 我对控制台输出的期望是,观察值 a$ 和 b$ 都没有完成,1、2、3、4、5、6、7、1、1、1、1、1、1...
在数组中的所有值都通过 a$ 发出之后,从 b$ 发出的值不通过。为什么会这样?竞赛操作员是否知道 a$ 不会再发出?如果是这样,比赛运营商是如何知道这一点的?
【问题讨论】:
标签: typescript rxjs