我正在使用angular,并且有一个名为nameservice.ts的服务,如下所示:
log4j.appender.activity.layout=org.apache.log4j.CsvParameterLayout
log4j.appender.activity.layout.delimiter=,
log4j.appender.activity.layout.header=col1,col2,col3,col4
在组件tablecomp.ts中,我调用getIds(),然后在返回的每个Id上,我调用getNames。
getIds():Observable<Ids> {
return this.http.post(this.url,'').pipe(map(({ Ids }:any) => Ids.map(item=>({Id:item.Id})))) as Observable<Ids>;
}
getNames(data: Ids):Observable<any[]> {
return this.http
.post(url,data)
.pipe(map(({ Names}: any) => Names.map(item => ({id: item.ID, name: item.name }))));
}
我在这里做错了什么?浏览器显示未定义switchMap()中的ID。
答案 0 :(得分:0)
添加水龙头,看看管子里有什么东西
getallNames(): any {
this.nameservice.getIds().pipe(
tap(ids => { console.log(ids); }),
switchMap((ids: Ids) => this.nameservice.getNames(ids))
).subscribe((response) => {
console.log(response)
})
}
会告诉您对getIds的调用是否返回未定义的
。