创建一个Observable,在订阅时调用Observable工厂,为每个新的观察者创建一个Observable。
defer<R extends ObservableInput<any>>(observableFactory: () => R): Observable<ObservedValueOf<R>>
- observableFactory: () => R
要为订阅输出Observable的每个观察者调用的Observable工厂函数。还可以返回任何ObservableInput,这些输入将在飞行中转换为Observable。
Observable<ObservedValueOf<R>>
: 其观察者的订阅触发对给定Observable工厂函数的调用的Observable。.
import { defer, fromEvent, interval } from 'rxjs';
const clicksOrInterval = defer(() => {
return Math.random() > 0.5
? fromEvent(document, 'click')
: interval(1000);
});
clicksOrInterval.subscribe(x => console.log(x));