微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当我尝试返回数据库搜索结果时返回未定义

如何解决当我尝试返回数据库搜索结果时返回未定义

我使用 neDB 创建电子应用程序。

我想创建函数

const getAllHosts = (db) => {
    db.find({},(err,hosts) => {
        return hosts
    })
}

但是当我调用这个函数时,它返回 undefined,我试图将它更改为 async,但它没有帮助我。

解决方法

因为您没有从 getAllHosts 返回任何东西。

试试这个

const getAllHosts = (db) => {
   return new Promise((resolve,reject) => {
     db.find({},(err,hosts) => {
       if (err) return reject(err);
       resolve(hosts)
     })
  })
}

getAllHosts().then(hosts => console.log(hosts)).catch(err => console.err(err))

如果您的 db.find 已经返回了一个 promise,您可以尝试这样的操作

const getAllHosts = async (db) => {
   try {
     const hosts = await db.find({})
     return hosts
   } catch(err) {
     throw err
   }
}

getAllHosts().then(hosts => console.log(hosts)).catch(err => console.err(err))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。