Estoy bastante confundido acerca de este código, ya que debería comportarse sincronizado, pero no devuelve datos a tiempo.
En mi experiencia, debería ocurrir lo siguiente:
Pero esto es lo que realmente sucede:
Estoy usando el paquete de nodos html-pdf
resolve: async (parent, args, { req }) => { try { //... let blob = undefined; let pdfSize = 0; const pdfId = uuidv4(); pdf.create(args.data.htmlTemplate, { //... }) .toBuffer((err, buffer) => { if (err) { console.log(err); } blob = Buffer.from(buffer).toString('base64') as unknown as Blob; pdfSize = Buffer.byteLength(buffer); console.log('BLOB AND SIZE: ', blob, pdfSize); }); console.log('BLOB AND SIZE OUTSIDE: ', blob, pdfSize); await uploadFile(pdfId, blob as unknown as string, 'application/pdf'); //... } catch (error) { console.error(JSON.stringify(error, null, 2)); if (error instanceof Error) { throw new Error(error.message); } } },No hay indicación por mecanografiado de que .pdfCreate es asíncrono o una promesa, y esperarlo no funciona.
¿No entiendo correctamente el encadenamiento de funciones?
¿Cómo puedo llegar al trabajo en el orden que mencioné anteriormente?