【发布时间】:2020-01-31 13:28:54
【问题描述】:
所以,我是新手,想了解异步函数的工作原理。使用 Promises 中的“解决,拒绝”来做这件事,效果很好。但是当我尝试使用 async 而不是 new Promise 应用它时,由于某种原因,该函数返回未定义。这是我的代码:)
注意:对不起,我的英语不流利:)
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
})
【问题讨论】:
-
obtenerCategoria不返回任何内容,crearClase也不返回任何内容 -
return Categoria.findOne(...)
标签: javascript node.js asynchronous async-await