当我尝试 return db 搜索结果时返回未定义

Returning undefined when i tried to return db search result

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

我要创建函数:

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

但是当我调用这个函数时,它 return 未定义,我试图将它更改为 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 已经 returns 一个承诺,您可以尝试这样的事情

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))