Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在NodeJS中返回未定义的异步函数_Javascript_Node.js_Asynchronous_Async Await - Fatal编程技术网

Javascript 在NodeJS中返回未定义的异步函数

Javascript 在NodeJS中返回未定义的异步函数,javascript,node.js,asynchronous,async-await,Javascript,Node.js,Asynchronous,Async Await,所以,我是一个新手,试图了解异步函数是如何工作的。用承诺中的“决心,拒绝”去做,效果很好。但是,当我尝试用async而不是新的Promise应用它时,由于某种原因,函数返回undefined。这是我的代码:) 注:对不起,我的英语不流利:) 使用async/await 请尝试以下代码: obtenerCategoria = async(category) => { const categoriaDB = await Categoria.findOne({ descripcion:

所以,我是一个新手,试图了解异步函数是如何工作的。用承诺中的“决心,拒绝”去做,效果很好。但是,当我尝试用async而不是新的Promise应用它时,由于某种原因,函数返回undefined。这是我的代码:)

注:对不起,我的英语不流利:)


使用
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
}

使用
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
}

obtenerCategoria没有返回值。此外,您可以在Categoria.findOne()调用中使用wait,并使用try/catch代替对exec()的调用,例如。

obtenerCategoria没有返回值。此外,您可以在Categoria.findOne()调用中使用wait,并使用try/catch代替对exec()的调用,例如。

obtenerCategoria
不返回任何内容,crearClase也不返回任何内容。
返回Categoria.findOne(…)
obtenerCategoria
不返回任何内容,
crearClase
也不返回Categoria.findOne(…)