类型 'void' 不可分配给类型 'User[]'

Type 'void' is not assignable to type 'User[]'

我无法理解这个错误, 为什么它不允许我将 post 数据发送到用户数组,以便我可以从 html 访问它?

这是组件

export class Service1Component implements OnInit {

  selectedUser: User;
  users: Array<User>;

 constructor(private _userService: UserService) { }

 ngOnInit() {
   this._userService.getUsers()
   .subscribe(resUserData => {
     this.users = resUserData
   });
 }

 onSelectUser(user:any){
   this.selectedUser = user;
 }
}

这是我要订阅的服务

export class UserService {

 private _getUrl = '/api/users'

 constructor(private _http: Http) { }

 getUsers(){
   return this._http.get(this._getUrl)
   .map((response: Response) => {
     response.json();
   })
 }
}

只需初始化您的用户

users : User[] = [];

编辑

编辑您的问题后,我发现您错过了return您服务中的回复

 return this._http.get(this._getUrl)
   .map((response: Response) => {
     return response.json();
 })

您应该将订阅范围限定在一个块中:

.subscribe(resUserData => {
    this.users = resUserData;
});

您从您的函数中错过了 return,该函数在您的组件中被视为 void

getUsers(){
   return this._http.get(this._getUrl)
   .map((response: Response) => {
    return response.json();   // add return statement
   })
}

您的获取答案方法没有 returning 任何东西,因为您的地图函数没有 return。您甚至不需要 map 函数,因为 'new' HttpClient 会自动执行此操作。试试这个

getUsers() { 
  return this._http.get(this._getUrl);
}

如果箭头函数return单值你不需要使用return语句

getUsers(){
   return this._http.get(this._getUrl)
   .map((response: Response) => response.json())
 }

If you use HttpClient you don't need to .map((response: Response) => response.json()) it's automatically calls response.json() internally.