Estoy tratando de agregar una definición de función asíncrona para async-busboy;
He creado un archivo "async-busboy.d.ts"
declare module "async-busboy" {
export default async function asyncBusby
(subString: any): Promise<any>;
}
Pero esto me da el error: "error TS1040: el modificador" asíncrono "no se puede utilizar en un contexto ambiental".
¿Cómo escribo las funciones asíncronas?
Gracias
EDITAR Gracias, @Titian Cernicova-Dragomir y @Aaron por su respuesta. Pero cuando lo llamo me sale un error.
const dddd = await asyncBusboy(22);
[ts] "await" expression is only allowed within an async function.
¿Alguna sugerencia?
Respuestas
1 para la respuesta № 1Todo lo que necesitas es esto:
declare module "async-busboy" {
export default function asyncBusby
(subString: any): Promise<any>;
}
El hecho de que devuelva un Promise
Es lo que lo hace asíncrono. Se espera que los consumidores await
el any
valor ahora los async
el modificador se usa para aumentar la implementación del cuerpo de la función (lo que devuelve se envuelve en una promesa), que no tiene en una definición de tipo, por lo que async
no está permitido en la definición de tipo.
0 para la respuesta № 2
No hay necesidad de async
Modificador en una declaración. los async
El modificador dirige al compilador a emitir código que permite el uso de await
. Desde el punto de vista del consumidor, la parte importante es que devuelve un Promise
No cómo se implementa el async en el cuerpo de la función. Puedes considerar async
Un detalle de implementación de la función.
Su problema es un problema del sitio de llamadas, debe marcar la función en la que llama asyncBusby
como siendo async
:
async function foo (){
const dddd = await asyncBusby(22);
console.log(dddd);
}