tubo custome con llamada http en angular valor 6 no volver

votos
0

He hecho una costumbre tubo en ángulo 6 con la toma de id como parámetro y devolverlo después de llamar a nombrar servidor (llamada http)

Mi código tubería está siguiendo

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)

    }
   )
 }

}

y usarlo de esta manera

 <td>{{it.createdByUser.id | getName }}</td>
Publicado el 19/12/2018 a las 14:12
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

Si la función que está utilizando para obtener su valor es asincrónico, tendrá que utilizar una AsyncPipe.

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

En este momento, va a devolver response.data.namesólo para la función que se suscribe a la respuesta. Eso no es lo mismo que devolverlo para el actual transform()función. En el marco de código que se ejecuta la función angular tubería, no se puede obtener el resultado de la solicitud asíncrona - que va a tomar tiempo para volver.

Respondida el 19/12/2018 a las 14:15
fuente por usuario

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