當異步服務沒有返回值但我想使用Observables時,我傾向於使用Observable<boolean>
。但我對這個布爾值沒有意義,因爲服務失敗或成功,如果失敗,我希望Observable處於錯誤狀態。這隻留下觀察到的布爾值的「真」值。Observable <void> Typescript中的使用模式
Observable<void>
下面的使用是否適合這些情況?或與使用的Observable<void>
const asyncFuncWithoutResult =(): Observable<void> => {
// fake something async that has no return value
const itWorked = true; // or not
if (itWorked) {
return Observable.of();
} else {
return Observable.throw(Error('It did not work'));
}
}
// call the service
asyncFuncWithoutResult()
.subscribe(
undefined, // nothing will be emitted when using Observable.of()
(err: any) => console.error(err), // handle error state
() => console.log('Success'), // handle success state
);
我看不到任何明顯的問題。如果遇到需要發出任意值的情況,則始終可以使用'concat'和'Observable.of'來發出所需的值。例如。 'asyncFuncWithoutResult()。CONCAT(Observable.of( 「成功了!」))'。 – cartant
Thx,這是一個非常有用的提示。 – Halt