如何捕获超时请求
How can I catch a timeout request
这是我的代码:
properties.service.ts
get(stringParams) {
let headers = new Headers({
"X-AUTH-APIKEY": API_KEY
});
this.options = new RequestOptions({
headers: headers
});
return this.http
.get(`${API_URL}/properties/?${stringParams}`, this.options)
.timeout(50)
.map((response: Response) => response.json())
}
posts.ts
this.propertiesService.get(arrayParams).subscribe((data: any) => {
}), (err) => { console.log("timeoout")};
我在超时中设置了 50,所以被解雇了,但我无法以这种方式捕获错误
}), (err) => { console.log("timeoout")};
我收到这个错误:
TimeoutError {name: "TimeoutError", stack: "TimeoutError: Timeout has occurred↵ at new Time…http://localhost:8100/build/polyfills.js:3:10143)", message: "Timeout has occurred"
编辑:
this.propertiesService.get(arrayParams).subscribe((data: any) => {
}), (err) => { console.log("timeoout")};
get(stringParams) {
return this.http
.get(`${API_URL}/properties/?${stringParams}`, this.options)
.timeout(50)
.map((response: Response) => response.json())
.catch(this.handleError);
}
private handleError(error: any) {
return Observable.throw(error);
}
我试过这个解决方案,但我仍然遇到这个错误
解决方案:
代码应该是这样的(subscribe里面的err):
}, (err) => { console.log("timeoout")});
err
应该在 subscribe
里面
this.propertiesService.get(arrayParams).subscribe((data: any) => {
}, (err) => { console.log("timeoout")});
你应该catch
例外:
get(stringParams) {
return this.http
.get(`${API_URL}/properties/?${stringParams}`, this.options)
.timeout(50)
.map((response: Response) => response.json())
.catch(this.handleError);
}
private handleError(error: any) {
return Observable.throw(error);
}
这是我的代码:
properties.service.ts
get(stringParams) {
let headers = new Headers({
"X-AUTH-APIKEY": API_KEY
});
this.options = new RequestOptions({
headers: headers
});
return this.http
.get(`${API_URL}/properties/?${stringParams}`, this.options)
.timeout(50)
.map((response: Response) => response.json())
}
posts.ts
this.propertiesService.get(arrayParams).subscribe((data: any) => {
}), (err) => { console.log("timeoout")};
我在超时中设置了 50,所以被解雇了,但我无法以这种方式捕获错误
}), (err) => { console.log("timeoout")};
我收到这个错误:
TimeoutError {name: "TimeoutError", stack: "TimeoutError: Timeout has occurred↵ at new Time…http://localhost:8100/build/polyfills.js:3:10143)", message: "Timeout has occurred"
编辑:
this.propertiesService.get(arrayParams).subscribe((data: any) => {
}), (err) => { console.log("timeoout")};
get(stringParams) {
return this.http
.get(`${API_URL}/properties/?${stringParams}`, this.options)
.timeout(50)
.map((response: Response) => response.json())
.catch(this.handleError);
}
private handleError(error: any) {
return Observable.throw(error);
}
我试过这个解决方案,但我仍然遇到这个错误
解决方案:
代码应该是这样的(subscribe里面的err):
}, (err) => { console.log("timeoout")});
err
应该在 subscribe
this.propertiesService.get(arrayParams).subscribe((data: any) => {
}, (err) => { console.log("timeoout")});
你应该catch
例外:
get(stringParams) {
return this.http
.get(`${API_URL}/properties/?${stringParams}`, this.options)
.timeout(50)
.map((response: Response) => response.json())
.catch(this.handleError);
}
private handleError(error: any) {
return Observable.throw(error);
}