首页 > 解决方案 > 如何在函数之外访问 promise 回调值?

问题描述

据我了解,回调函数是异步的,不能像常规函数那样返回值。在阅读了有关 Promise 的内容后,我以为我对它们有了很好的理解,它们基本上是回调的增强版本,允许像异步函数一样返回值。在我的getConnections方法中,我试图find()通过猫鼬调用我的数据库上的函数,并且我试图获取这个对象数组并将其发送到视图。

var test =  new Promise((resolve, reject) => {
        Database.find().then(list => {
            resolve(list);

        }).catch(err=> {
            return reject(err);
        })

        })
console.log(test)

当我尝试在 promise 函数之外登录控制台时,我得到Promise { _U: 0, _V: 0, _W: null, _X: null }

我认为这不能正常运行,并且我认为我正确地使用了 Promise。谁能指出我如何在回调函数之外返回这个对象数组的正确方向?

标签: javascriptnode.jsmongodbmongoose

解决方案


您可以简单地await在承诺声明之前添加。IE

var test = await new Promise...

推荐阅读