Rura custome z połączenia HTTP w wartość kątową 6 nie powrotu

głosy
0

Zrobiłem niestandardowej rury w kątowym 6 z bierze id jako parametr i zwraca go nazwać po wywołaniu połączenia serwera (http)

Mój kod rura jest następujący

import { Pipe, PipeTransform } from '@angular/core';
import { AjaxService } from '@shared/services/ajax.service';
import { activities } from '@shared/constants/activity.constant';
@Pipe({
name: 'getName'
})
export class GetNamePipe implements PipeTransform {
constructor( private serviceManager: AjaxService,){

}
transform(value: any): any {
 if(!value )
return value;
 // return 'a';  // this work perfectly

this.serviceManager.getByParams(activities.getEducatorAndSupervisorName, 
{id:value}).subscribe(
    response => {
      if(response.status==1){
      console.log(response.data)

       return response.data.name;  // i want to return this.

      }
      else
      {

      }
    },
    error => {
        console.log(error)

    }
   )
 }

}

i używanie go w ten sposób

 <td>{{it.createdByUser.id | getName }}</td>
Utwórz 19/12/2018 o 14:12
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
0

Jeśli funkcja używasz, aby uzyskać wartość jest asynchroniczna, trzeba będzie użyć AsyncPipe.

https://angular.io/guide/pipes#the-impure-asyncpipe

Teraz, wracasz response.data.nametylko dla funkcji, która zgadza się z odpowiedzią. To nie jest taka sama jak wpuszczeniem go do rzeczywistej transform()funkcji. Na ramie kodu, który uruchamia funkcję kątowe rury, to nie może uzyskać wynik żądania asynchronicznego - to zajmie czasu, aby wrócić.

Odpowiedział 19/12/2018 o 14:15
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more