Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

183
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda