我在mat-tab的不同选项卡中使用了3种API服务,但是当我在选项卡之间切换时,我从所有3种API中获得了数据组合。
我在一个组件中定义了三个函数,在该组件中,我在所有不同的函数中调用不同的API,并在ngOninit()中调用这三个函数。当将获取的数据打印到控制台中时,我正在将数据附加到彼此。
例如,如果功能1有20条记录,功能2有3条记录,功能3也有3条记录。
因此,如果首先执行功能1,则将记录20条记录,之后,如果执行功能2,则将记录20 + 3 = 23条记录(而此处仅记录3条记录),最后是函数3执行后返回23 + 3 = 26条记录(这里也应该只有3条记录)。
试图在特定函数中获取值后退订该函数。无法做到这一点。
constructor(private _server: ServerService) {}
ngOnInit(): void {
this.f1();
this.f2()
}
getf1(): void {
this._server.getf1count()
.subscribe(exeJened => {
this.exeJened = exeJened
console.log('exe',this.exeJened)
})
}
getf2(): void
{
this._server.getf2count()
.subscribe(queJened => {
this.queJened = queJened
console.log('que',this.queJened) }
})
}
exe的结果:20条记录的数组 que的结果:23条记录的数组 exe有20条记录,而que有3条记录。 无法上传屏幕截图。
服务器服务代码:
constructor(private _http: HttpClient){}
getf1count():Observable<any>
{
return this._http.get(this.executed_URL)
.pipe(
map(exeresult=>exeresult['serverserials']),
retry(4),
catchError(this.handleError)
)
}
getf2count():Observable<any>
{
return this._http.get(this.queued_URL)
.pipe(
map(queresult=>queresult['serverserials']),
retry(4),
catchError(this.handleError)
)
}