如何处理可能为空的rxjs可观察响应?

时间:2017-01-04 10:39:04

标签: angular typescript ionic-framework rxjs

我正在使用带有打字稿的Angular2和Ionic2,并希望处理来自后端服务的响应

  • 使用http 200
  • 的空响应
  • 或包含errormessage属性的json对象,其中包含要向用户显示的信息。

这是我的要求:

this.http.put(***).subscribe((data) => {

问题是如果我给出数据参数,rxjs会尝试从json序列化它,如果是空的,它会抛出一个错误。如果我没有给出数据参数,我可以处理空响应,但是如果有的话,我将如何到达errormessage属性?

我不想在后端请求更改,以便在出现错误时提供正确的http错误代码。我有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

你有没有试过像:

public Update = (itemToUpdate: any): Observable<Response> => {
    return this._http
        .put("htto://localhost/api/", JSON.stringify(itemToUpdate))
        .map(res => res ? res.json() : {});
}