我有一个返回Observable<void>
的函数,我需要它返回一个可观察的,立即emits 并完成的.通常情况下,我会使用of
操作符来实现这一点,但它不适用于void
.
我try 过但不起作用的事情:
return of(); // doesn't emit
return of({}); // TypeScript compilation error 'Type 'Observable<{}>' is not assignable to type 'Observable<void>'.'
我try 过一些有用的东西,但我不喜欢:
return of({}).map(() => {}); // does extra work just to avoid compiler error
return of({}) as unknown as Observable<void>; // yucky casting
return new Observable<void>(s => {s.next(); s.complete();}); // verbose
我目前正在使用最后一个,因为它不需要做额外的工作,但我更喜欢像of
这样的快捷方式.