import { Injectable } from '@angular/core'; import { Resolve } from '@angular/router'; import { Observable, forkJoin } from 'rxjs'; import { map } from 'rxjs/operators'; import { DataService } from './../core/data.service'; @Injectable({ providedIn: 'root' }) export class DegreePlannerResolver implements Resolve<Observable<string>> { constructor(private dataService: DataService) { } resolve(): Observable<any> { return forkJoin( this.dataService.getSubjectsMap(), this.dataService.getTerms(), this.dataService.getFavoriteCourses(), this.dataService.getDegreePlans() ).pipe( map((allResponses) => { return { subjects: allResponses[0], terms: allResponses[1], favorites: allResponses[2], degreePlans: allResponses[3] }; }) ); } }