返回数据时,Observable订阅不执行

时间:2016-10-14 19:33:15

标签: javascript angular observable subscribe

我在角度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;

} 我正在为另一个函数使用相同的代码,它工作,所以不理解为什么它不执行即使返回数据。

1 个答案:

答案 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")
})