Tengo el código a continuación:
servicio.js
module.exports = { getUser }; async function getUser({ data }) { return new Promise((resolve, reject) => { const id = data["id"]; const doc = await db.collection('users').where('id', '==', id).get(); if (!doc.exists) { resolve('No such document!'); } else { resolve(doc.data()); } }); }controlador.js
async function getUser(req, res, next) { userService.getUser({ data: req.body }).then(function (val) { res.json(val); }); } Esto arroja un error: SyntaxError: await is only valid in async functions and the top level bodies of modules . ¿Cómo puedo recuperar los datos de la espera de manera efectiva?
Puede usar await solo dentro de la función async .
function dummy() { return new Promise((res, rej) => { setTimeout(() => { res(20) }, 300) }) } let val = new Promise(async(resolve, reject) => { let v = await dummy() resolve(v) }) val.then(value => console.log(value))