我在我的应用中设置了一个搜索电话,但我收到了以下错误:
键入' Observable'不能分配给' Observable'。 输入'用户'不能分配给'用户[]'。 物业长度'类型'用户'
中缺少这些消息很明确,我理解它们,但我不明白为什么我会得到它们。这是相关的代码。
searchResults: Observable<Array<User>>;
constructor(fb:FormBuilder, private _userService: UserService){
this.currentUser = JSON.parse(localStorage.getItem('user'));
this.searchResults = this.searchTerm.valueChanges.debounceTime(400).distinctUntilChanged()
.switchMap(searchTerm => this.userSearch(searchTerm));
};
private userSearch(searchTerm: string): Array<User>{
this._userService.getUsers(this.currentUser.UserId, this.currentUser.Token).then(
data => {
//loader.dismiss();
if (data) {
return data as Array<User>;
} else {
//This really should never happen
console.error('Error retrieving users data: Data object is empty');
}
},
error => {
//loader.dismiss();
console.error('Error retrieving users data');
console.dir(error);
return error as Array<User>;
}
);
return new Array<User>();
}
对我而言,这些类型应该匹配,但他们显然不会这样做,而且我很难理解为什么。我的userSearch函数返回一个Users数组,这意味着Observable也应该属于那种类型,但不知何故它会以单个用户的形式返回。任何帮助表示赞赏。