如何控制服务器上的方法返回Angular4中的HttpStatus?

时间:2018-04-11 15:25:35

标签: angular spring-boot

我在服务器中有方法,它返回数据列表或HttpStatus

@RequestMapping(value = "/test", method = RequestMethod.GET)
    public @ResponseBody Object get(
        if(true) 
             return HttpStatus.NOT_FOUND;
        else 
             return new ArrayList<>();
    }

我想控制从服务器返回的值,当返回HttpStatus抛出某种方式消息时,但是如果返回列表然后将数据返回给组件。

@Injectable()
export class HandlerService {
  private testUrl = 'http://localhost:8090/test';

  constructor(private http:HttpClient) { }

  public getTasks(): Observable<any> {
    return this.http.get(this.testUrl);
  ]);
  }
}

我使用angular / common / http中的HttpClient,我不知道如何控制这种情况。

2 个答案:

答案 0 :(得分:0)

您可以在订阅中执行此操作:

this.handlerService.getTasks().subscribe(res => {}, err => {});

请注意err的最后一项功能。

或者您可以在服务级别执行此操作:

import { catchError } from 'rxjs/operators';
...
public getTasks(): Observable<any> {
  return this.http.get(this.testUrl).pipe(catchError(err => {}));
}

答案 1 :(得分:0)

正如@ bc1105所说,您可以通过声明

在回调错误内的订阅或服务中进行此操作
let status = error.status;

以这种方式保存该值。