Angular 订阅流后如何返回数据?
订阅流后如何返回数据? 例如,我在subscription中获取URL,然后我希望返回包含基于此URD的数据的流Angular 订阅流后如何返回数据?,angular,typescript,rxjs,subscription,Angular,Typescript,Rxjs,Subscription,订阅流后如何返回数据? 例如,我在subscription中获取URL,然后我希望返回包含基于此URD的数据的流 public get() { this.service.getData().subscribe((data: any) => { // data was setted here this.url = data; }); return this.http.get(this.url) .map(r =>
public get() {
this.service.getData().subscribe((data: any) => {
// data was setted here
this.url = data;
});
return this.http.get(this.url)
.map(r => {
...
return obj;
});
}
或
尝试:
您应该为此使用
concatMap
(或mergeMap
)并将其转化为一个链:
public get() {
this.service.getData().do((data: any) => {
// data was set here
this.url = data;
})
.concatMap(data => this.http.get(data))
.map(r => {
...
return obj;
});
}
或者您甚至不需要使用this.url
(我不知道您的用例是什么)
public get() {
this.service.getData().subscribe((data: any) => {
// data was setted here
this.url = data;
this.get2(this.url);
});
}
public get2(url){
return this.http.get(url)
.map(r => {
...
return obj;
});
}
public get() {
this.service.getData().subscribe((data: any) => {
// data was setted here
this.url = data;
//get data with the URL
return this.http.get(data)
.map(r => {
//Get something with data obtained with the URL
return obj;
});
});
}
public get() {
this.service.getData().do((data: any) => {
// data was set here
this.url = data;
})
.concatMap(data => this.http.get(data))
.map(r => {
...
return obj;
});
}
public get() {
this.service.getData()
.concatMap(url => this.http.get(url))
.map(r => {
...
return obj;
});
}