[英]Return observable from observable in angular 2
在以下代碼段中。 首先,我從返回Observable的GeoCode服務中獲取了lat lng,然后進行了http調用,再次返回了observable
getData(next?) {
return this.geoCode.getCurrentLocation().map(latlng => {
console.log(latlng);
var url = this.API_URL + "?location=" + latlng + "&radius=" + this.radius;
if (next != undefined) {
url = this.API_URL + "?location=" + latlng + "&radius=" + this.radius + "&next=" + next;
}
return this._http.get(url).map(res=>res.json());
});
};
上面的方法返回Observable<Observable<any>>
但是我想返回Observable<any>
您必須使用flatMap
代替map:
getData(next?) {
return this.geoCode.getCurrentLocation().flatMap(latlng => { //HERE !
console.log(latlng);
let url = this.API_URL + "?location=" + latlng + "&radius=" + this.radius;
if (next != undefined) {
url = this.API_URL + "?location=" + latlng + "&radius=" + this.radius + "&next=" + next;
}
return this._http.get(url).flatMap(res=>res.json()); //AND HERE !
});
};
很棒的讀物: 為什么我們需要使用flatMap?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.