forkJoin
当所有 observables 完成时,发出每个 observable 的最新值。
const ob1 = interval(1000).pipe(
map(d => `ob1:${d}`),
ake(8)
);
const ob2 = interval(2000).pipe(
map(d => `ob3:${d}`),
take(5)
);
forkJoin([ob1, ob2]).subscribe((data) => console.log(data)); // ["ob1:7", "ob2:4"]
Note: 根据上面例子输出结果显示,forkJoin 即 当全部observables都completed时,执行一次subscribe
zip
作符会订阅所有内部 observables,然后等待每个发出一个值。一旦发生这种情况,将发出具有相应索引的所有值。这会持续进行,直到至少一个内部 observable 完成。
const ob1 = interval(1000).pipe(
map(d => `ob1:${d}`),
ake(8)
);
const ob2 = interval(2000).pipe(
map(d => `ob3:${d}`),
take(5)
);
zip(ob1, ob2).subscribe((data) => {
console.log(data); // ["ob1:0", "ob3:0"] -> ["ob1:1", &#