gpt4 book ai didi

angular - 类型 'Subscription' 缺少以下属性

转载 作者:行者123 更新时间:2023-12-03 22:03:33 25 4
gpt4 key购买 nike

当我编写此代码时,IDE 显示错误。

我有一个组件在 ngOnInit 中调用服务来获取数据。服务调用另一个服务来获取一些数据并使用它来获取数据然后返回它。

成分:

ngOnInit() {
const token = "abc";
this.service.getContactPersons(token).subscribe(
persons => this.contactPersons = persons
);

}

服务:
getContactPersons(token: string): Observable<ContactPerson[]> {
return this.tokenService.getParameters(token).pipe(
switchMap((data: Params) => {
return this.http.get<Properties>(
this.baseUrl + `/abc/${data.param1}/properties/${data.param2}`
);
})
).subscribe((data: Properties) => data.contactPersons);
}

我收到此错误:“类型‘订阅’缺少‘可观察’类型中的以下属性:_isScalar、源、运算符、提升等。”

最佳答案

subscribe不是等效于 then 的 rxjs .具体来说,有了promise你就可以做到somePromise.then(doSomething).then(doSomethingElse) ,但你不能someRxjsStream$.subscribe(doSomething).subscribe(doSomethingElse) .如果你想转换数据流,你应该使用几个可用的 rxjs 运算符之一,在你的情况下它是 map :

getContactPersons(token: string): Observable<ContactPerson[]> {
return this.tokenService.getParameters(token).pipe(
switchMap((data: Params) => this.http.get<Properties>(
`${this.baseUrl}/abc/${data.param1}/properties/${data.param2}`)),
map((data: Properties) => data.contactPersons));
}

关于angular - 类型 'Subscription' 缺少以下属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58281451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com