【发布时间】:2019-01-10 19:14:29
【问题描述】:
我对 Http Request 值有疑问。我对 Express API 休息做了一个 Http 请求,我想查看整个组件的值。我可以在 observable 上获得数据,但不能在组件的其他功能中获得数据。你能解释一下为什么吗?
import { Component, OnInit, Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
export class UserModel {
constructor (
public id: string,
public name: string,
public type: string
) {}
}
@Injectable()
export class AskingService {
BASE_URL = 'http://localhost:4201/';
constructor(private http: HttpClient) { }
// Get users from EXPRESS API REST
getUserFromBdd() {
return this.http.get<UserModel[]>(this.BASE_URL + 'api/fields');
}
}
@Component({
selector: 'app-asking-problem',
template: `
`
})
export class AskingProblemComponent implements OnInit {
constructor( private service: AskingService) { }
users;
ngOnInit() {
// subscribing to the service
this.service.getUserFromBdd().subscribe(data => {this.users = data, console.log('this.users =', this.users); });
// console return data
console.log('this.users =', this.users);
// console return undefined
}
}
【问题讨论】:
-
您在箭头函数中使用逗号运算符,它返回 rightmost 值(
undefined从console.log返回)。此外,您还记录了 outside 回调,无论如何都无法设置该值; observables 处理异步代码)。
标签: angular typescript httprequest observable