2017-06-08 112 views
1

我正在使用帶打字稿的rxjs。我寫了以下兩個簡單的函數。但我想rxjs已經有這樣的功能。 rxjsRxjs:從值或可觀察值創建可觀察值的速記

export function isObservable(value: any): value is Observable<any> { 
    return value instanceof Observable; 
} 

export function createObservable<T>(value: T | Observable<T>): Observable <T> { 
    return isObservable(value) ? value : Observable.of(value); 
} 

回答

1

我不認爲RxJS 5已經完全具備了這個功能,因爲你應該知道你正在使用什麼類型的數據。

但是,您可以利用這一RxJS處理任何觀測量,承諾,可觀測狀,陣列狀的等等...對象以相同的方式,寫了以下的事實:

const val1 = Observable.of(42); 
const val2 = [42]; 

Observable.from(val1).subscribe(console.log); 
Observable.from(val2).subscribe(console.log); 

在這兩種情況下,這隻會打印42,即使曾經使用帶有單個值的Observable,然後是帶有單個值的數組。

見現場演示:https://jsbin.com/fubobon/3/edit?js,console

0

不,它不需要,可能是因爲它不是非常有用的。您需要使用哪些用例?