Angular Type'(token:string)=>Observable'不能分配给Type'Observable'

Angular Type'(token:string)=>Observable'不能分配给Type'Observable',angular,rxjs,observable,Angular,Rxjs,Observable,我一直在学习rxjs和angular教程,试图理解可观测数据以及如何将它们链接在一起。根据我读到的所有内容,下面的代码应该可以工作。但事实并非如此,我也不明白为什么 我试图从存储中获取一个令牌,用getFakeToken方法伪造了该部分,因为这样编译很好,然后将该标记填充到httpHeaders对象中,该对象应包装在一个observable中,然后我可以将该对象与另一个对web服务的调用链接在一起,并在一天结束时返回该observable,这就是我不使用subscribe的原因。我已经完成了对w

我一直在学习rxjs和angular教程,试图理解可观测数据以及如何将它们链接在一起。根据我读到的所有内容,下面的代码应该可以工作。但事实并非如此,我也不明白为什么

我试图从存储中获取一个令牌,用getFakeToken方法伪造了该部分,因为这样编译很好,然后将该标记填充到httpHeaders对象中,该对象应包装在一个observable中,然后我可以将该对象与另一个对web服务的调用链接在一起,并在一天结束时返回该observable,这就是我不使用subscribe的原因。我已经完成了对web服务的最后一次调用,该服务将使用buildHttpOptions方法中构建的http选项,因为错误在buildHttpOptions行上

我不确定我是否正确地解释了所有内容,所以这里有另一种说法:我尝试同步获取一个令牌,将该令牌插入到httpOptions对象中,然后在将来的代码迭代中,它将是另一个.pipe,位于return语句的末尾,使用它来同步调用一个web服务,并返回封装在可观察对象中的结果。获取令牌并将其插入对象的前两个部分失败了,我已经在下面的代码中包含了它们

我收到的错误消息:

[ng] ERROR in src/app/web-api/api.service.ts(57,50): error TS2322: Type '(token: string) => Observable<{ headers: HttpHe
aders; }>' is not assignable to type 'Observable<any>'.
[ng]   Property '_isScalar' is missing in type '(token: string) => Observable<{ headers: HttpHeaders; }>'.
[ng] src/app/web-api/api.service.ts(67,31): error TS2345: Argument of type 'Observable<any>' is not assignable to parame
ter of type 'OperatorFunction<string, any>'.
[ng]   Type 'Observable<any>' provides no match for the signature '(source: Observable<string>): Observable<any>'.
代码:

可以使用贴图操作符将可观察对象中的对象转换为其他对象。然后使用switchMap链接您的http请求

GetData:可观察的{ 返回此.getFakeToken.pipe maptoken=>{ 标题:新的HttpHeaders{ “内容类型”:“应用程序/json”, “授权”:令牌 } }, switchMapheaders=>/*返回可观察的*/ ; }
请你再解释清楚一点,我不明白你想做什么?!让我换一种说法。我正试图让这篇文章中的代码在没有错误的情况下编译。我不明白这个错误。我要求人们解释我做错了什么,为什么我会出错,以及我能做些什么来修复它。你能说出应该根据哪个来源工作吗?通常,我会将令牌持久化到本地存储上,并尝试在其不为null时进行检索
private getFakeToken(): Observable<string> {
    return of("123abc");
}

getGetData(): Observable<any> {
    let getToken$ = this.getFakeToken();

    let buildHttpOptions$: Observable<any> = (token: string) => { return of(
        {
            headers: new HttpHeaders({
                'Content-Type': 'application/json',
                'authorization': token
            })
        })};

    return getToken$.pipe(buildHttpOptions$);
}