1

我正在尝试从 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 处于打开状态是没有意义的。

4

0 回答 0