好吧,我一定有一些我不明白的關於map()
函數。我期望在訂閱的兩種情況下,映射的術語被寫入控制檯。但是,如果http響應的狀態碼爲4xx,則不是。關於http響應的RxJs/Angular2映射函數不叫
http.get("http://my.domain/rest/path").map(
data => {
console.log("mapped");
return data;
}
).subscribe(
data => {
console.log("good");
},
error => {
console.log("bad");
}
);
這裏有什麼提示嗎?
我明白了。然而,似乎只要發現異常,Observable就會取消訂閱(根據我的調試器,請參閱RxJs的catch.js:58 beta11版本),隨後的「訂閱」會導致「TypeError:Can not read property」Symbol(Symbol。迭代器)「的未定義 」其實我需要訂閱並處理結果,即使在Http狀態4xx/5xx的情況下。 – Matt
PS:剛剛發現,當我從catch塊中返回一個Observable.of(...)時,它會起作用。 – Matt