Angular - преобразовать наблюдаемое‹число› в число

Я использую хранилище ngrx для записи состояния, мое состояние в настоящее время содержит мой список учетных записей и текущую страницу (для пейджинга).

В моем компоненте списка учетных записей я вызываю магазин, чтобы получить текущую страницу, и передаю ее службе (веб-API), чтобы получить список учетных записей.

this.currentPage$ = this.store.select(getCurrentPage);

Моя служба angular ожидает переменную (currentPage), но в качестве типа числа выбор магазина возвращает Observable.

getListOfCustomer(currentPage: number): Observable<ListDto<CustomerList>> {}

Моя переменная this.currentPage$ в настоящее время имеет тип Observable<number>

Как я могу преобразовать Observable<number> в number, чтобы передать его моему сервису?


person user2859298    schedule 30.10.2017    source источник


Ответы (2)


подпишитесь, чтобы получить результат в виде числа:

let currentPageSub :Subscription;
...
this.currentPageSub = this.store.select(getCurrentPage).subscribe(
 (page: number) => {
     this.currentPage$=page;
 }
);
person Fateh Mohamed    schedule 30.10.2017

Вы можете создать асинхронную функцию и преобразовать наблюдаемое в обещание и дождаться его.

async method(){
    var pageNr = await this.currentPage$.toPromise();
    this.getListOfCustomer(pageNr);
}
person Titian Cernicova-Dragomir    schedule 30.10.2017