node.js - NodeJS,从async wait获取返回值

标签 node.js asynchronous mongoose async-await

我有一个使用 Mongoose 的异步等待函数:

const createModelB = async (id) => {
    try {
        let user = await User.findOne({id: id});

        if (user) {
            let modelB = new ModelB({ user_id: user.id });
            modelB = await scrum.save();
            return modelB;
        }
        return null;
    } catch (err) {
        console.error(err);
    }

    return null;
};

现在我从其他地方调用这个函数:

let modelB = createModelB(123);
console.log(modelB);

控制台没有输出模型字段,而是返回给我:

Promise {<pending>}

我错过了什么?

最佳答案

我认为会是

const createModelBInstance = async () => {
 let modelB = await createModelB(123);
 console.log(modelB);
}

createModelBInstance();

只要异步函数返回值,您就必须对其调用等待,并且应该将其包装在另一个异步函数中。

关于node.js - NodeJS,从async wait获取返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48375499/

相关文章:

javascript - 访问全局变量和异步问题

java - 使用 HttpAsyncClient 发送异步调用时出现问题

node.js - 当我想要更多/全部时,Mongoose 将查询限制为 1000 个结果(从 2.6.5 迁移到 3.1.2)

node.js - NodeJS Mongoose Schema 'save' 函数错误处理?

json - Gulp 使用 gulp-jade 和 gulp-data

javascript - 发布请求后,继续检查是否完成 | Node.js

javascript - 如何将 .zip 文件提取到 lambda 函数内的目录

javascript - 如何使用 NodeJS 提供多个 html 文件

javascript - 获取包含 iframe 的页面的屏幕截图

node.js - 在 Node.js 中映射 Azure 表存储数据模型的最简单方法