javascript - Http Post using .map doesnt work when service return Http 400 -


from typescript code, invoke webservice written in c#. typescript code looks this, , works expected when service returns http200, when server rejects credentials , throws http 400, not break inside map function.

 return this.http.post(this.authenticationendpoint, params)         .map((response:response) =>  {                 let resp = response;                 let token = response.json() && response.json().access_token;                 if(token){                     this.token = token;                     localstorage.setitem('user', json.stringify({username: username, token:token}));                     return true;                 }                  return false;             }) 

enter image description here

looking @ definition of response class defines properties status, statustext , on. given limited knowledge of angular , typescript assume regardless of http code returned service, break inside map function? how can handle case? function return observable<boolean>

you need catch observable errors here's example:

export class apigateway {      baseurl = "https://myapi.com"; // or pulled file    constructor(private http: http) {}      get(path, params) {        showloadingindicator();          let headers = this.createmyspecialheaders();        let options = {          headers: headers        } // , whatever else need generalize        let fullurl = this.baseurl + path + '?' + this.urlencode(params)        `;      return this.get(path, params, options)                 .do(() => hideloadingindicator())                 .map(res => res.json())                 .catch(err => {                      hideloadingindicator();                    // show error message or whatever app api errors etc                    // rethrow error, depending on use case                  })    }  }


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -