gpt4 book ai didi

rest - 无法在 Angular 2 的嵌套调用中读取未定义的属性 'subscribe'

转载 作者:行者123 更新时间:2023-12-04 02:11:48 24 4
gpt4 key购买 nike

我想在 company.servicegetCompanies() 上订阅 company-list.component。但是我收到以下错误:

Cannot read property 'subscribe' of undefined

这是代码:

公司.服务.ts

  getCompaniesOfUser() {
let r;
this.userService.getUser().subscribe(
res=> r = res,
err => console.log(err),
()=>(this.getCompaniesWithSpecificLink())
)
}

getCompaniesWithSpecificLink() {
if (isAdmin == false) {
url = '/user/companies';
} else {
url = '/companies';
}
return this.getCompanies(url);

}

getCompanies(url):Observable<Company[]> {
return this.http.get(this.host + url)
.map((res:Response) => res.json());
}

公司列表.component.ts

companies:Company[];

public getTheCompanies() {
this._companyService.getCompaniesOfUser()
.subscribe(companies => this.companies = companies); <-- the error occurred here
}

最佳答案

必须在可观察对象上使用订阅方法,但您的 getCompaniesOfUser() 方法不返回任何内容,因此是一个无效方法。

如果要调用背靠背休息服务。就像一个人的输入取决于其他人的输出。您应该使用 flatMap 运算符。

例如检查此答案:https://stackoverflow.com/a/36712707/5706293

像这样的东西应该可以工作:

getCompaniesOfUser() {
return this.userService.getUser().flatMap( (resp) => {
return this.getCompaniesWithSpecificLink();
});
}

关于rest - 无法在 Angular 2 的嵌套调用中读取未定义的属性 'subscribe',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37341619/

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