我在角度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;
}
我将相同的代码用于另一个函数,并且可以正常工作,因此即使无法返回数据,也无法理解为什么它没有执行。
最佳答案
您的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")
})