返回NodeJS中未定义的异步函数
所以,我正在尝试了解异步功能的工作原理。使用Promises中的“解决,拒绝”功能可以正常工作。但是,由于某种原因,当我尝试通过异步而不是新的Promise应用它时,该函数返回未定义。这是我的代码:)
PS。对不起我的英语,说不流利的:)
category = body.category
obtenerCategoria = async(category) => {
Categoria.findOne({ descripcion: category })
.exec((err, categoriaDB) => {
if (err) {
throw new Error(err)
}
if (!categoriaDB) {
return res.status(400).json({
ok: false,
msg: 'Categoria no encontrada'
})
}
console.log(categoriaDB); // Works fine here
return categoriaDB
})
}
crearClase = async() => {
categoria = await obtenerCategoria(category);
console.log(categoria); //getting nothing here
}
crearClase()
.then()
.catch(e => {
return e
})```
回答如下:[使用callback
时不需要使用async/await
功能
尝试此代码:
obtenerCategoria = async(category) => {
const categoriaDB = await Categoria.findOne({ descripcion: category });
if (!categoriaDB) {
return res.status(400).json({
ok: false,
msg: 'Categoria no encontrada'
})
}
console.log(categoriaDB); // Works fine here
return categoriaDB
}