我想订阅company-list.component
on getCompanies()
来自company.service
。但是我收到以下错误:
无法读取未定义的属性“订阅”
这是代码:
公司.service.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()
方法不返回任何内容,因此是一个 void 方法。
如果您想拨打连续休息服务。就像一个人的输入依赖于其他人的输出一样。您应该使用flatMap
操作员。
检查这个答案例如:https://stackoverflow.com/a/36712707/5706293 https://stackoverflow.com/a/36712707/5706293
像这样的东西应该有效:
getCompaniesOfUser() {
return this.userService.getUser().flatMap( (resp) => {
return this.getCompaniesWithSpecificLink();
});
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)