Soy nuevo en Javascript. Quiero hacer que este bloque se ejecute después de que finalice la declaración if (asincrónica). La razón por la que quiero eso es porque quiero hacer algunos cambios para actualizarlos si cae en la declaración if
let params = { TableName: "storepedia-test", Item: updatedItem }; docClient.put(params, function (err, data) { if (err) { console.log(err); } else { res.redirect('/devices'); } });Aquí está mi código completo
const { id } = req.params; const file = req.file; let updatedItem = { ...req.body}; updatedItem.id = id; if (file !== undefined){ const deleteParams = { Key: updatedItem.image, Bucket: bucketName } s3.deleteObject(deleteParams, async (err, data) => { if (err) { console.log(err) } else { const result = await uploadFile(file); console.log('result', result); await unlinkFile(file.path); updatedItem.image = result.Key; let params = { TableName: "storepedia-test", Item: updatedItem }; docClient.put(params, function (err, data) { if (err) { console.log(err); } else { res.redirect('/devices'); } }); } }) } let params = { TableName: "storepedia-test", Item: updatedItem }; docClient.put(params, function (err, data) { if (err) { console.log(err); } else { res.redirect('/devices'); } });Solo para ejecutar algo después del if ? Creo que este es el mejor lugar:
docClient.put(params, function(err, data) { if (err) { console.log(err); } else { // run async code here. // when done do the redirect. // for example: s3.do_something(function(err, data) { if (err) { console.log(err) } else { console.log(data) res.redirect('/devices'); } }) } });