ProductService.ts
getProduct(id: number): Observable<IProduct> {
return this._http.get(this._productUrl + '/GetById/' +
id).map((response: Response) => <IProduct>response.json())
.catch(this.errorHandler);
}
ProductDetailComponent.ts
getProduct(id: number) {
this._productService.getProduct(id).subscribe(
res => {
console.log('before component ' + res);
this.product = res;
console.log('after component ' + res);
},
error => this.errorMessage = <any>error),
console.log('execution complete');
}
在订阅中收到结果时,它将作为
执行完成,
在组件[object Object]之前,
在[object object]
答案 0 :(得分:3)
您正在使用字符串连接(使用+
符号)。这样,Javascript将首先将Object转换为字符串([object Object]
)。如果您不想要,可以这样试试:console.log('before component', res)
。
请注意逗号,而不是+
。这会将对象作为单独的参数传递给console.log
,允许您的浏览器或CLI进行渲染。例如,通过这种方式(在浏览器中),您可以展开或折叠对象。
答案 1 :(得分:2)
你需要做JSON.stringify
console.log('before component ' + JSON.stringify(res));
答案 2 :(得分:1)
您还可以执行以下操作:
console.log('before component',JSON.stringify(res,undefined,2))
以json对象的形式打印[Object object]
。