Цикл загрузки API после нажатия на кнопку ion-action-sheet - PullRequest
0 голосов
/ 07 июля 2019

Мне нужно вызывать пользовательские API в Angular-Ionic-приложении.

Проблема в том, что после нажатия на кнопку в листе ионного действия мне понадобится угловая служба для вызова и получения некоторыхданные из пользовательского API.

Служба работает, фактически она успешно извлекает данные, но NgProgressInterceptor застревает в бесконечном цикле, даже если данные были получены.

Разметка HTML:

<button mat-icon-button (click)="openTimeMenu()" class="customFontH left_rightMiddleAlign" >T</button>

Код машинописного текста:

async openTimeMenu() {
    const actionSheet = await this.actionSheetController.create({
      header: 'Sample',
      buttons: [
        {
          text: 'Now',
          handler: () => {
             this.ListService.getList().subscribe(List => this.setList(List));
          }
        },
        {
          text: 'Cancella',
          role: 'cancel',
          handler: () => {
            console.log('Cancel clicked');
          }
        }
      ]
    });
    await actionSheet.present();
  }

Сервисный код:

public getList (): Observable<any>
{
    let url = this.global.BASE_URL + " . . . ";
    return this.global.http.get(url, {}).pipe(
     tap(list => catchError(this.global.handleError('getList ', [])))
    );
}

Конфигурация провайдера в МОДУЛЕ APP

import { NgProgressModule, NgProgressInterceptor   } from 'ngx-progressbar';
import { HttpClient, HttpHeaders, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';

. . .

@NgModule({

  providers: [
    { provide: HTTP_INTERCEPTORS, useClass: NgProgressInterceptor, multi: true },

  ] 
})

Приложение работало нормально, пока я не реализовал лист ионного действия, похоже, что обработчик сломал что-то, из-за чего NgProgressInterceptor попал в цикл.

...