可观察的类型不匹配问题

时间:2017-05-24 15:59:03

标签: angular angular2-observables

我在我的应用中设置了一个搜索电话,但我收到了以下错误:

键入' 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也应该属于那种类型,但不知何故它会以单个用户的形式返回。任何帮助表示赞赏。

0 个答案:

没有答案