Angular2:失败后返回http..get状态

时间:2017-01-06 16:35:44

标签: angular

我试图在失败后返回http.get请求的状态,但以下代码不起作用:

fileExists(url){
        var status="";
        this.http.get(url)
                  .map(res => res.json())
                  .subscribe(
                      data => console.log(data),
                      err =>{
                              console.log(err.status)
                               status=err.status});
        console.log("Status is: "+status);
        return status;
  }

我希望status=err.status在变量中设置状态,但它不起作用

2 个答案:

答案 0 :(得分:1)

您必须与res合作才能res.status

一旦获得res.json(),您就会失去状态以及其他信息。 res.json()的作用是返回res._body

内的对象版本

请参阅Angular2 responses

答案 1 :(得分:0)

以下代码会将http request状态存储在变量中。发送请求后,屏幕上会显示status变量。

export class App {

  private status: string;

  constructor(private http: Http) {
    this.http.get(`someNotExistingJSON.json`)
        .subscribe(res => {
                console.log("success")
            },
            err => {
                console.log(err.status);
                this.status = err.status;
            }
        )
  };

  getStatus(){
    console.log(this.status);
  }
}

<强> Plunker