我正在尝试从 Angular 中的 URL 读取查询参数,如下所示:
export class QueryParameterReader implements OnInit {
constructor(private currentActiveRoute: ActivatedRoute) {}
ngOnInit() {
this.currentActiveRoute.queryParams.subscribe((queryParams: Params) => {
console.log("Recieved query parameters: " + queryParams['userid']);
});
}
}
但是,一旦我尝试通过 Promise 执行此操作,它就会失败(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 处于打开状态是没有意义的。