我有以下方法调用http observable
<input type="text">
<input type="text">
<input type="text">
这个代码在一个调用它的组件中
console.log($('input').length);
问题是,组件中的代码在服务方法之前返回。所以console.log(this.message)是未定义的。我猜它一定是时间问题?
答案 0 :(得分:1)
是的,这是时间问题。 {http:1}}语句在响应从您的http请求到达之前执行。你应该在subscribe中写下日志语句,如下所示。
let response = this.workRequestService.SaveWorkRequest(this.workRequest)
.subscribe(
hero =>
{
this.message = hero;
console.log(this.message);
},
error => this.errorMessage = <any>error);
答案 1 :(得分:0)
试试这个:
ngOnInit() {
this.getMessage().subscribe(_ => {
console.log(this.message)
});
}
public getMessage() {
return this.workRequestService.SaveWorkRequest(this.workRequest)
.map(hero => this.message = hero,error => this.errorMessage = <any>error);