Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在Angular2中获取错误消息`_Angular_Error Handling - Fatal编程技术网

无法在Angular2中获取错误消息`

无法在Angular2中获取错误消息`,angular,error-handling,Angular,Error Handling,在我的AuthService中,我抛出了一个带有错误消息的业务错误 在myLogInComponent中,它捕获到该错误,但无法显示错误消息“登录失败错误”,而是在控制台日志中显示Type object对象。 为什么会这样?如何正确显示错误消息 import { Injectable } from '@angular/core'; import { Response } from "@angular/http/src/static_response"; import { Http } from

在我的
AuthService
中,我抛出了一个带有错误消息的业务错误 在my
LogInComponent
中,它捕获到该错误,但无法显示错误消息
“登录失败错误”
,而是在控制台日志中显示Type object对象。 为什么会这样?如何正确显示错误消息

import { Injectable } from '@angular/core';
import { Response } from "@angular/http/src/static_response";
import { Http } from "@angular/http";
import { Observable } from "rxjs/Observable";
import { UUID } from "angular2-uuid";
import 'rxjs/Rx'
import { User } from "app/user/user";
import { Subject } from "rxjs/Subject";

@Injectable()
export class AuthService {
  REMOTE_USER_URL = "http://localhost:3000/users/";
  public subject: Subject<User> = new Subject<User>();

  constructor(public http: Http) { }

  public get currentUser(): Observable<User> {
    return this.subject.asObservable();
  }
  public login(username, password) {
    return this.http.get(this.REMOTE_USER_URL + "?username=" + username)
      .map((response: Response) => {
        // login successful if there's a jwt token in the response
        let data = response.json();
        if (data.length == 1) {
          let user = data[0];
          if (user.username == username && user.password == password) {
            // store user details and jwt token in local storage to keep user logged in between page refreshes
            localStorage.setItem('currentUser', JSON.stringify(user));
            this.subject.next(Object.assign({}, user));
            return "LoggedIn Successfully";
          } else {
            console.log("throw login failed Errror **");
            //throw Observable.throw(response);
            throw Observable.throw(new Error("login failed error "));
          }
        } else {
          console.log("throw login failed Errror ****");
          throw Observable.throw(new Error("login failed error "));
        }
      });
  }

  logout() {
    localStorage.removeItem('currentUser');
    this.subject.next(Object.assign({}));
  }

}

错误是对象。添加行

 console.dir(error);
您将在控制台中列出对象及其所有属性。您需要使用行中error对象的某些属性

console.log("here is error "+  error);

我发现问题出在这里了 我应该使用throw new Error(“登录时失败”),而不是 throw Observable.throw(新错误(“登录失败”)

console.log("here is error "+  error);