如何解决带有错误的返回问题,使用Observable内部的捕获?Angular 4 - Observable catch error
我想在catch里执行一个函数,在执行订阅之前做一些验证。
预先感谢您,非常感谢您的关注。在发生
错误 - > .catch((E)=> {的console.log(E)})
import { Injectable } from '@angular/core';
import { Headers, Http, ResponseOptions} from '@angular/http';
import { AuthHttp } from 'angular2-jwt';
import { MEAT_API } from '../app.api';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
@Injectable()
export class CompareNfeService {
constructor(private http: AuthHttp) { }
envirArquivos(order): Observable<any> {
const headers = new Headers();
return this.http.post(`${MEAT_API}compare/arquivo`, order,
new ResponseOptions({headers: headers}))
.map(response => response.json())
.catch((e) => {console.log(e)});
}
}
错误
ERROR在/ XXXXXX /应用/ SRC /应用/compare/service.ts(28,17): 类型'(e:any)=> void'的参数不能分配给参数 type'(err:any,caught:Observable)=> ObservableInput < {} >”。
类型'void'不可分配给类型'ObservableInput < {}>'。
只有当你想通过传递错误。如果你的目标是真正处理/捕捉错误,那么你不应该再抛出。 – bryan60
@ bryan60请详细说明! – Aravind
Observable.throw()抛出一个错误,以便可观察序列的其余部分跳过并直接进入订户的错误处理程序。如果这不符合您的预期行为,您可以选择不重新抛出并返回可观察值。这真的取决于你的用例。 – bryan60