当我尝试 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))
我用 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))