我遇到了以下问题:
我尝试从JSON获取数据并将其带到我的前端。
要连接到JSON,我在service.ts
getSentiment(text: string){
var sentimentdata = {
'text': text
};
var headers = new Headers();
headers.append('Content-Type', 'application/json');
return this.http.post('http://localhost:5000/analyse', sentimentdata, { headers: headers })
.map((response: Response) => {
console.log(response.json());
response.json();
})
}
我在控制台中获得以下内容:
Object { analysis: "0.49527" }
我通过以下方式在component.ts
中调用该服务:
this.service.getSentiment(this.model.text).subscribe(
res => {
this.score = res;
console.log(this.score);
},
error => {
console.log(error);
}
);
这给了我以下输出:undefined
我一直在疯狂如何摆脱未定义。它是如何在服务方面提供的,而不是在我的组件中?
答案 0 :(得分:2)
问题在于你的箭头功能:
.map (res => res.json()) <- automatic return
然而:
.map((response: Response) => {console.log(response.json());response.json();}) <- curly brackets in your arrow function, NO automatic return.
所以
.map((response: Response) => {console.log(response.json());return response.json();})
会解决它。