有人可以通过node-sqlite使用Promises
显示一些好方法吗?
例如,我尝试重写此类代码以避免回调地狱 并获得空变量
tableRows = []
columns = []
db.all(`... query`, params, (err, medics) => {
medics.forEach((medic) => {
db.all(`some other query`, {$id: medic.id}, (err, amounts) => {
tableRows.push(amounts)
})
}
}).all(`another query`, (err, result) => {
columns = result
})
console.log(tableRows, columns)
有人可以帮忙吗? 只有node-sqlite,没有ORM或基于sqlite的库。
答案 0 :(得分:0)
如果您可以转换代码或使用Node 7.6+,则可以使用async / await
(async function() {
tableRows = []
columns = []
try {
const medics = await db.all(`... query`, params);
medics.forEach((medic) => {
const amounts = await db.all(`some other query`, {$id: medic.id});
tableRows.push(amounts);
});
const result = db.all(`another query`);
columns = result;
console.log(tableRows, columns);
}
catch(err) {
console.log(err);
}
})();