Я пытаюсь прочитать параметры запроса из URL-адреса в Angular следующим образом:
export class QueryParameterReader implements OnInit {
constructor(private currentActiveRoute: ActivatedRoute) {}
ngOnInit() {
this.currentActiveRoute.queryParams.subscribe((queryParams: Params) => {
console.log("Recieved query parameters: " + queryParams['userid']);
});
}
}
Но как только я пытаюсь сделать это через промис, происходит сбой (обработчик then
никогда не срабатывает):
export class QueryParameterReader implements OnInit {
constructor(private currentActiveRoute: ActivatedRoute) {}
ngOnInit() {
this.currentActiveRoute.queryParams.toPromise().then((queryParams: Params) => {
console.log("Recieved query parameters: " + queryParams['userid']);
});
}
}
Любая идея, почему это может происходить? Мне кажется, что я должен делать это вторым способом, потому что я хочу прочитать параметры запроса только один раз; нет смысла постоянно держать Observable открытым.
operators
в RxJS, синтаксис немного изменился. - person shinvu   schedule 14.11.2018import {first} from "rxjs/operators"
, а битtoPromise()
становитсяthis.currentActivateRoute.queryParams.pipe(first()).toPromise().then()
. - person shinvu   schedule 14.11.2018