在Angular中,你可以使用rxjs的操作符来实现延迟订阅直到另一个Observable发出。下面是一个示例代码:
import { timer, from } from 'rxjs';
import { delay, switchMap } from 'rxjs/operators';
const source1 = timer(1000); // 第一个Observable,延迟1秒发出值
const source2 = from([1, 2, 3, 4, 5]); // 第二个Observable,立即发出值
source1.pipe(
delay(5000), // 延迟5秒订阅
switchMap(() => source2) // 当第一个Observable发出值后,切换到第二个Observable
).subscribe(value => {
console.log(value); // 输出:1 2 3 4 5
});
在上面的代码中,我们使用了timer
创建了一个延迟1秒发出值的Observable,并将其赋值给source1
。然后,我们使用from
创建了一个立即发出值的Observable,并将其赋值给source2
。接下来,我们使用了pipe
方法来处理source1
的Observable,使用delay
操作符来延迟5秒订阅。最后,我们使用switchMap
操作符来在第一个Observable发出值后切换到第二个Observable。最后,我们使用subscribe
方法来订阅并打印第二个Observable的值。
这样,就实现了延迟订阅直到另一个Observable发出的效果。
上一篇:Angular RxJs: 为数组中的每个项发送请求
下一篇:Angular RxJS: 自定义可管道的 Observable<{}> 和 Observable<void>