我现在有这个:
import {concat, Observable, ReplaySubject, pipe, merge} from 'rxjs'; import {takeUntil, takeWhile, toArray} from 'rxjs/operators'; const rs1 = new ReplaySubject(1); const rs2 = new ReplaySubject(1); const rs3 = new ReplaySubject(1); rs1.next(1); rs2.next(2); rs3.next(2); merge(rs1,rs2,rs3).pipe(toArray()).subscribe(v => { console.log({v}); });
现在它什么也不记录,但我想把这个记录下来:
{v: [1,2,3]}
如何将它们合并到数组中?
那你应该用 zip 而不是 merge .
zip
merge
import {ReplaySubject, zip} from 'rxjs'; const rs1 = new ReplaySubject(1); const rs2 = new ReplaySubject(1); const rs3 = new ReplaySubject(1); rs1.next(1); rs2.next(2); rs3.next(2); zip(rs1,rs2,rs3).subscribe(v => { console.log({v}); });