javascript—考虑到查询是异步运行的,有没有办法让函数返回数据库查询?我在寻找任何类型的解决方案

ttvkxqim  于 2021-09-13  发布在  Java
关注(0)|答案(0)|浏览(209)

此问题已在此处找到答案

如何从异步调用返回响应(42个应答)
异步函数返回承诺,而不是值(4个答案)
如何获取承诺的价值((12个答案)
一小时前关门了。
有没有一种方法可以让任何类型的函数(甚至可能不是async/await)以更高级别的方式返回sqlite db的查询?

const sqlite = require('sqlite3')
const db = new sqlite.Database('./Database/Database.db')

async function getAllChoices() {
    const prom = new Promise((resolve, reject) => {
        db.all('SELECT * FROM Choices', (err, rows) => {
            if (err) {
                reject(err)
            } else {
                resolve(rows)
            }
        })
    })
    console.log(await prom)  //correctly logs resolved promise
    return await prom
}

console.log(getAllChoices()) //logs Promise { <pending> }

我理解为什么上面的函数不返回已解析的值(因为async/await对顶级值不起作用),但通常有没有办法让函数从sqlite数据库返回已解析的查询?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题