0
我試圖用Immutable.js實現與observable和Map結構的同步機制。使用immutable Map結構作爲Observable
這不起作用,因爲地圖不可能是可觀察的,也可能是因爲我做錯了。
我試圖查看Rx文檔,只使用,返回,從...的東西似乎沒有適合一個地圖。
我需要的是等待我的地圖完成之前(我從http.GET獲得的值),然後再執行我在訂閱回調中的操作。
import {List, Map} from 'immutable';
import {Observable} from 'rxjs/Observable';
...
processNewTopology(topology: List<Endpoint>): Observable<Map<string, any>> {
let ip: string = JSON.stringify(topology.get(0).ueIpAddress);
//this function is just a http GET that returns an osbervable string (imsi)
this.apiService.getImsiFromAAA(ip).subscribe(
imsi => myMap = this.reduceEndpointsToMap(imsi, topology),
error => this.errorMessage = <any>error
);
return myMap; // I need in some way to convert my map into an obervable
}
private reduceEndpointsToMap(imsi: string, topology: List<Endpoint>): Map<string, any> {
// this function take the imsi and a list point and build the map and return it
// the imsi is provided by http.GET
}
因此,在另一個類我稱之爲processNewTopology拿到地圖。 我需要做你正在使用Obserable作爲ES6無極顯示行動
this.topologyService.processNewTopology(endpoints).subscribe(
myMap => {
// here I want to access the content of myMap to display the new topo
}
...
);
非常感謝您!有效。 – Charles