使用Promises从node-sqlite获取数据

时间:2017-10-18 14:52:28

标签: javascript node.js sqlite ecmascript-6 promise

有人可以通过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的库。

1 个答案:

答案 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);
   }
})();