Tengo algunos problemas con una función de conversión que estoy usando. Como mis documentos de Mongodb se guardan antes de que se complete la conversión, lo que termina con una matriz vacía, que debería incluir mis URL (se verifica en la devolución de llamada). Todo funciona bien, pero mi problema es que redirijo y guardo el documento mucho antes de que termine apiInstance.convertDocumentPptxToPng.
try { const params = { Bucket: 'bucket', Key: req.file.key } await s3.getObject(params, async function(err, data) { if (err) console.log(err, err.stack); // an error occurred else { const inputFile = await Buffer.from(data.Body) apiInstance.convertDocumentPptxToPng(inputFile, callback) } await course.save() res.redirect('/course/admin') })} catch(err) { console.log(err) }Está esperando s3.getObject , pero también le está dando una función de devolución de llamada. Elimine la función de devolución de llamada y simplemente use await. el course no está definido, aunque no estoy seguro de que sea normal.
try { const params = { Bucket: 'bucket', Key: req.file.key } const data = await new Promise( (resolve, reject) => s3.getObject(params,(err, data) => resolve(data))); const inputFile = await Buffer.from(data.Body); apiInstance.convertDocumentPptxToPng(inputFile, callback); await course.save(); res.redirect('/course/admin'); } catch (err) { console.log(err) }