2017-09-01 24 views
0

我試圖執行更硬的類型編碼結構,以下智能感知信息引起了我的好奇心。現在Rx的Observable類中真正實際的錯誤類型是什麼?

(method) Observable.subscribe(next?: (value: Response) => void, error?: (error: any) => void, complete?:() => void): Subscription (+2 overloads)

,我明白它說我很驚訝爲什麼error參數類型any而不是「真實的」。我知道如果我使用它作爲any,則有value字段和requestId

這是否意味着error實例中可觀察到的結構是完全依賴於服務器響應上,並不能在所有的鍵入?

+1

可以'在JavaScript throw'什麼。這與服務器無關,這是因爲在通用的「Observable 」中,你不能假設任何有關錯誤的信息。 – jonrsharpe

回答

-3

Observable是一個通用類,Observable<T>。該.subscribe方法你打電話的版本最多需要三個參數:

subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?:() => void): Subscription; 

請注意,只有第一個回調,next,使用其定義泛型類型T。這是因爲你可以throw東西在JavaScript,因此通用版本不能做出什麼error回調可能會收到假設。

獲得更多特定類型的錯誤的唯一方法是創建一個Observable<T, E>error?: (error: E) => void

相關問題