gpt4 book ai didi

javascript - NodeJS 中的异步函数返回未定义

转载 作者:行者123 更新时间:2023-12-01 00:35:00 25 4
gpt4 key购买 nike

所以,我是新尝试了解异步函数如何工作的。使用 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
})

最佳答案

使用async/await时不需要使用callback函数

试试这个代码:

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
}

关于javascript - NodeJS 中的异步函数返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58198613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com