我正在通过以下代码捕获我的服务中的状态代码:
add(new: Add): Observable<Response> {
return this.http
.post(this.addURL, new , httpOptions)
.map((response: Response) => {
if (response) {
if (response.status === 200) {
return [{ status: response.status, response: <Response>response.json() }]
}
}
})
.catch(this.handleError);
}
这是我的component.ts代码,我想在成功添加
后调用列表 addDetails(): void {
var new = this.form.value.array;
new = JSON.stringify(this.form.value.array);
this.addService.add(new)
.subscribe(
resultArray => this.Response = resultArray,
error => console.log("Error :: " + error),
)
if(Response.status ===200){
this.getList();
}}
但我收到以下错误: 财产状况&#39;类型&#39; typeof Response&#39;
上不存在答案 0 :(得分:0)
尝试返回Object而不是Array:
return { status: response.status, response: <Response>response.json() }
当您访问Array项时,您必须使用该项的索引。 因此,在您的情况下,当您想要获取状态代码时,您可以进入订阅方法:
this.addService.add(_new)
.subscribe(
resultArray => {
this.Response = resultArray
if(resultArray[0].status ===200){
this.getList();
}
},
error => console.log("Error :: " + error))
注意:不要忘记订阅使用asynchrone方法。您永远无法访问它返回外部的响应。
答案 1 :(得分:0)
您正试图从Response
CLASS获取您的状态,而不是它的实例。注意大写和typeof Response
部分错误。
我认为if (resultArray[0].status === 200)
应该可行,但我不明白你为什么要返回一个数组,所以它可能是if (result.status === 200)