constructor( private route: ActivatedRoute,private http: Http ){ // Observe parameter changes let paramObs = route.paramMap; // Fetch data once let dataObs = http.get('...'); // Subscribe to both observables,// use both resolved values at the same level }
是否有类似于forkJoin的东西,只要发出参数更改就会触发? forkJoin仅在所有可观察对象都已完成时起作用.
我只需要避免回调地狱,任何符合的选择都是受欢迎的.
有几种选择:
>使用带有Observable.forkJoin()的take(1)来完成每个源Observable:
Observable.forkJoin(o1$.take(1),o2$.take(1));
>使用zip()
并在(1)所有源Observable发出相同数量的项目时发出(1):
Observable.zip(o1$,o2$).take(1);
>当任何源Observable发出时,使用combineLatest()
发出:
Observable.combineLatest(o1$,o2$)