好吧,我一定有一些我不明白的关于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