NodeJS,从异步等待中获取返回值

Posted

技术标签:

【中文标题】NodeJS,从异步等待中获取返回值【英文标题】:NodeJS, get return value from async await 【发布时间】:2018-06-30 17:24:13 【问题描述】:

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

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>

我错过了什么?

【问题讨论】:

【参考方案1】:

我认为会是

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


createModelBInstance();

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

【讨论】:

以上是关于NodeJS,从异步等待中获取返回值的主要内容,如果未能解决你的问题,请参考以下文章

无法从异步函数获取返回值,等待未按预期工作(Vue API 服务)

Nodejs中异步函数的返回值

Javascript - 异步等待和获取 - 返回值,而不是承诺?

Javascript-异步等待并获取-返回值,而不是诺言?

按值返回值而不等待所有值返回异步 C#

拆分进程以等待 NodeJS 上的事件