我想使用 promise 对象和 async/await 从 sqlite db.each 函数中获取我的数据,但我不太明白如何去做,我想要一些解释
我的代码如下:
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('./data.sqlite', (err) => {
if (err) {
console.error(err.message);
}
console.log('Connected to the database');
});
function request (req) {
new Promise(function (resolve, reject) {
db.each(req, function (err, row) {
if (err)
reject(err);
else
data.push(row);
}, function (err, n) {
if (err) {
reject(err);
}
else
resolve(data);
});
});
}
data = await request("select * from user "); //I'm getting errors here
db.close((err) => {
if (err) {
return console.error(err.message);
}
console.log('Close the database connection');
});
最佳答案
await
只能在 async
内使用功能。创建一个异步函数,在这个函数内部,等待 promise
由 request
返回功能
async function makeRequest() {
data = await request("select * from user ");
}
你需要从
request
返回 promise 函数,以便它可以等待function request (req) {
return new Promise(function (resolve, reject) {
// code
});
}
关于javascript - 如何使用 async/await 从 sqlite db.each 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61956386/