如何在 Angular 中将数据传递给订阅者

How to pass a data to subscriber in Angular

我有一个订阅“User”的以下服务。

 public getEmployees(): Observable<User> {
    const url = `${this.baseUrl}/employee`;
    return this.http.get<User>(url);
  }

我的问题是如何使用用户数据调用 getEmployees。我正在尝试使用以下代码,但出现错误?

const _user: User = {
      userId: "30294
}

 this.userAccountService.getEmployees().subscribe((userprofile: _user) => {
      console.log(userprofile.firstName);
    });

错误:_user 引用了值,但在这里使用了一个类型

_user 更改为 User

您 return 可观察到 User 但在该方法中您假定数据类型为 az _user.

 this.userAccountService.getEmployees().subscribe((userprofile: User) => {
      console.log(userprofile.firstName);
    });

您正在使用 _user 作为 userprofile: _user

中的类型

像这样修复:

const _user: User = {
      userId: "30294
}
 this.userAccountService.getEmployees().subscribe((userprofile: User) => {
      console.log(userprofile.firstName);
    });

subscribe 方法的完成回调需要传递一个类型的变量。但是您传递的不是类型,而是变量本身。

这就是您收到错误的原因。

_user refer to value but is being used a type here

所以替换这个:-

userprofile: _user

有了这个:-

userprofile: User

你很高兴。