我有一个问题,为什么我的回复被退回并打印为未定义。
这是我在main.js中的方法:
find() {
return this.serviceFactory
.createRequest()
.withId(333)
.sendAsGet().then(response => {
console.log(response);
});
}
上面的console.log(响应)是我得到未定义响应的地方;
这是用作this.serviceFactory
的导入类export class ServiceFactory {
constructor(http) {
this.http = http;
this.http.baseUrl = serviceUrlParts.baseUrl;
this.endpoint = "";
this.id = "";
}
createRequest() {
return this;
}
withId(id) {
this.id = id;
return this;
}
setEndPoint(endpoint){
this.endpoint = serviceUrlParts.baseUrl + endpoint;
}
sendAsGet() {
return this.http.get(`${this.endpoint}/${this.id}`)
.then(response => {
this.parseJSONContent(response);
}).catch(error => {
console.log(error);
});
}
parseJSONContent(response) {
console.dir(JSON.parse(response.content));
return JSON.parse(response.content);
}
}
parseJSONContent方法中的console.dir(JSON.parse(response.content))正在打印出从API返回的正确对象。在某个地方回到通话中它正在丢失。我们将非常感谢您对错误发生的一些看法!
答案 0 :(得分:2)
此处不返回值:
.then(response => {
return this.parseJSONContent(response);
})
将其更改为:
.then(response => this.parseJSONContent(response))
或
margin-left:20px;