вызов службы http с угловым в ионном с асинхронным и жду - PullRequest
0 голосов
/ 06 июля 2019

Я разрабатываю приложение с ионной структурой, которая возвращает сервис, вызываемый для отображения списка продуктов.Когда я вызываю API, я получаю эту ошибку

Property 'subscribe' does not exist on type 'Promise<Observable<Object>>'. Did you forget to use 'await'?

SERVICE.ts

async testCall() {
  const loading = await this.loadingCtrl.create({
    message : 'Please Wait...'
  });
  await loading.present();

  const headers = this.getHeaders();
  const foodList = await this.http.post('https://api/view', {
    paginate: 5,
    page: 1
  }, {headers});
  loading.dismiss();

  return await foodList.pipe(tap(_ => {
  })
  );
}

КОМПОНЕНТ

 async ngOnInit() {
    await this.productService.testCall().subscribe((data: any) => {
      this.productService.list = data.result.data;
    });
  }

любая помощь о том, как это сделать?

Ответы [ 2 ]

0 голосов
/ 06 июля 2019

Попробуйте это

const foodList = await this.http.post('https://api/view', {
    paginate: 5,
    page: 1
  }, {headers}).toPromise();
this.productService.list = await this.productService.testCall();
0 голосов
/ 06 июля 2019

Попробуйте вместо этого:

обслуживание:

testCall() {   
  const headers = this.getHeaders();
  const foodList = this.http.post('https://api/view', {
    paginate: 5,
    page: 1
  }, {headers});

  return foodList.pipe(tap(_ => {
  }));
}

компонент:

ngOnInit() {

  const loading = await this.loadingCtrl.create({
    message : 'Please Wait...'
  });
  loading.present();

  this.productService.testCall().subscribe((data: any) => {
      this.productService.list = data.result.data;
      loading.dismiss();
  });
}

СОВЕТ: Обратите внимание, как вместо этого я переместил вызовы "загрузки" пользовательского интерфейса в компонент

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...