В моем приложении Angular
Я сделал несколько попыток получить значения, используя BehaviorSubject, чтобы узнать, когда значение было изменено или получено.Я не могу получить значения до загрузки компонента.
По этой ссылке вы можете увидеть, что вы возвращаете:
https://dev.moip.com.br/v1.5/reference#listar-planos
data.service.ts:
dataOnChanged: BehaviorSubject<any> = new BehaviorSubject({});
getData() {
return new Promise((resolve, reject) => {
this.http.get(this.api_URL + 'plans/, this.httpOptions).subscribe((data: any) => {
// the result is
// data = {plans: Array(5)}
this.dataOnChanged.next(data);
resolve(data);
},
(response: any) => {
reject(response.error);
});
});
}
resol.service.ts:
constructor(
private dataService: DataService, {
}
* Resolve
* @param {ActivatedRouteSnapshot} route
* @param {RouterStateSnapshot} state
* @returns {Observable<any> | Promise<any> | any}
*/
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> | Promise<any> | any {
return new Promise((resolve, reject) => {
Promise.all([
this.dataService.getData()
]).then(
() => {
resolve();
},
reject
);
});
}
rout.module.ts:
{
path: 'home',
component: HomeComponent,
resolve: {
data: ResolveService,
},
},
home.component.ts:
constructor(
public data: DataService,
) {
this.dataService.dataOnChanged.subscribe((result: any) => {
// no result
debugger;
});
Проблема в том, что я не могу загрузить данные, возвращаемые HTTP GET, перед загрузкой компонента.Мне нужно загрузить данные раньше и показать экран.