【问题标题】:Returning undefined when i tried to return db search result [duplicate]当我尝试返回数据库搜索结果时返回未定义 [重复]
【发布时间】:2023-03-14 20:19:02
【问题描述】:

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

我要创建函数:

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

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

【问题讨论】:

  • return hosts; 不会将值返回给getAllHosts

标签: javascript electron undefined nedb


【解决方案1】:

因为你没有从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 已经返回了一个承诺,你可以尝试这样的事情

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

【讨论】:

  • 或者只是return await db.find({})
  • That(return db.find({})) 有效,但您可能需要在调用它时处理错误。
猜你喜欢
  • 1970-01-01
  • 2015-05-16
  • 1970-01-01
  • 2017-11-09
  • 2011-10-27
  • 2019-08-01
  • 2021-11-01
  • 2020-01-10
  • 1970-01-01
相关资源
最近更新 更多