我在角度2组件中有这个功能。
getSystem() {
this.applicationService
.getSystem(this.id)
.subscribe(
sysID => this.sysID = sysID,
() => console.log("success"))
}
我成功恢复了sysId,因为我将其传递给另一个函数,但是永远不会打印成功。我需要能够在打印成功的地方调用另一个函数,但该代码永远不会被执行。这是我的服务:
getSystem(appId: String):Observable<string>{
return this.http.get('http://localhost:8090/app/cmticket/getsystem?app=' +appId)
.map(this.extractData)
.catch(this.handleError);
}
private extractData(res: Response) {
console.log("extract data")
return res.json().stringList;
} 我正在为另一个函数使用相同的代码,它工作,所以不理解为什么它不执行即使返回数据。
答案 0 :(得分:2)
您的subscribe()
签名错误(docs)。像这样使用它:
.subscribe(
sysID => this.sysID = sysID,
null, // second positional argument is error
() => console.log("success"))
或
.subscribe({
next: sysID => this.sysID = sysID,
complete: () => console.log("success")
})