Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

188
Vistas
async/await y promesa en TypeScript

Estoy tratando de entender por qué la string de tipo de retorno en el siguiente método está subrayada en rojo como error:

 exportPageAsText(pageNumber: number): string { (async () => { const text = await this.pdfViewerService.getPageAsText(pageNumber); console.log(text); return text; })(); }

El mensaje de error dice: A function whose declared type is neither 'void' nor 'any' must return a value. así que moví el return text; fuera del alcance async y lo colocó después de })(); pero eso hizo que la variable de text fuera irreconocible.

Luego pensé que tal vez se debía a que el tipo de devolución del método debería ser una Promise , así que cambié la firma a:

 exportPageAsText(pageNumber: number): Promise<string>

Pero recibo un nuevo error que dice que A function whose declared type is neither 'void' nor 'any' must return a value.

¿Puede alguien por favor ayudarme a entender lo que estoy haciendo mal?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Desea usar await , por lo que necesita una función asíncrona. Lo que creó es una función asíncrona de autoinvocación. Pero devolver un valor dentro de la función de autoinvocación no lo devuelve para la función base.

Lo que está buscando es hacer que la función base sea asíncrona y establecer el tipo de retorno en Promise<string> :

 async exportPageAsText(pageNumber: number): Promise<string> { const text = await this.pdfViewerService.getPageAsText(pageNumber); console.log(text); return text; }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Su método espera un retorno antes del final, pero el evento de la promesa declarada por async () => {... no se devuelve

así que dos cosas para cambiar en tu código

  1. devolver el asíncrono ()
  2. cambie el tipo de retorno en la declaración de método por Promise<string>

En su caso, la sintaxis se verá como

 exportPageAsText(pageNumber: number): Promise<string> { return (async () => { const text = await this.pdfViewerService.getPageAsText(pageNumber); console.log(text); return text; })(); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Así es como lo hubiera hecho. asíncrono/espera.

 const exportPageAsText = async (pageNumber: number): Promise<string> => { const text: string = await this.pdfViewerService.getPageAsText(pageNumber); console.log(text); return text; }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda