作者:淘宝杂谈网z | 来源:互联网 | 2023-01-30 12:56
我正试图检测我所有的观察结果何时完成.我有以下Observables:
let observables:any[] = [];
if(valid){
observables.push(new Observable((observer:any) => {
async(()=>{
observer.next();
observer.complete();
})
}))
}
if(confirmed){
observables.push(new Observable((observer:any) => {
async(()=>{
observer.next();
observer.complete();
})
}))
}
Observable.forkJoin(observables).subscribe(
data => {
console.log('all completed');
},
error => {
console.log(error);
}
);
每当我的所有功能都完成时,我需要做一些事情.当observables
数组不为空时,Forkjoin似乎有效.但是当数组为空时,它永远不会被调用.我怎么解决这个问题?
1> kit..:
你错过了订阅中的第三个回调.试试这个:
Rx.Observable.forkJoin([]).subscribe(
val => {
console.log('next');
},
err => {
console.log('err');
},
() => {
console.log('complete')
}
);
空数组上的forkJoin立即完成.