как обрабатывать ответ об ошибке http в ionic 3?

#angular #ionic3

#angular #ionic3

Вопрос:

 login(credentials) {
    return new Promise((resolve, reject) => {
      this.http.post(apiUrl 'loginjwt', credentials).subscribe(data => {
        this.Storage.set("Access_Token", data['token']);
        this.Storage.set("user", data["user"]).then(res => {
          this.events.publish('user:loggedin',
            {name: data['user']['first_name']   ' '   data['user']['last_name'],
              id: data['user']['_id']});
        }).catch((err) => {
          console.log("failed to store");
          console.log(err);
        });
      }, err => {
        reject();
      });
    });
  }

this.authServiceProvider.login(data).then((result) => {
      let newdata = {"username": user['email'], "password": newpass1.value};
      console.log(newdata);
      this.authServiceProvider.update_pass(newdata).then((result) => {
        if (result["message"]) alert("Password Update successfully!");
      }, (err) => {
        alert(err);
        return false;
      })
    },(err) => {
      alert("Password is not correct!");
    });
 

чего я хочу добиться, так это предупреждения пользователя о неправильном пароле при сбое входа в систему. Но я также получил предупреждение об ошибке HTTP:
введите описание изображения здесь

как я могу предотвратить отображение http-предупреждения?

Ответ №1:

вы пытались добавить HttpErrorResponse при обнаружении ошибки, что-то вроде приведенного ниже :

 this.http.post(apiUrl 'loginjwt', credentials).subscribe(data => {
        this.Storage.set("Access_Token", data['token']);
        this.Storage.set("user", data["user"]).then(res => {
          this.events.publish('user:loggedin',
            {name: data['user']['first_name']   ' '   data['user']['last_name'],
              id: data['user']['_id']});
        }).catch((err) => {
          console.log("failed to store");
          console.log(err);
        });
      }, (err : HttpErrorResponse) => {
          if (err.status == 400) {
            alert("BAD REQUEST!");
          } else if (err.status == 401) { 
            alert("password incorect!");
          } else {
            console.log(err);
            reject();
          }
      });