Node js 承诺结果在其他函数中使用



我是节点js的新手,我需要将第一个查询的结果作为另一个函数中的参数。 这是我的模型:

return new Promise((resolve, reject) => {
var sql = "SELECT * FROM table";
db.query(sql,
(err, result) => {
if (err) {
return reject(err)
}
return resolve(result)
});
});

我需要这样的东西

return new Promise((resolve, reject) => {
var sql = "SELECT * FROM table";
db.query(sql)
.then(rows.map(row =>{ 
return arr[row.id] = this.getProduct(row.id);
}))
})

使用 Async/Await。

您可以创建一个genericqueryDb 函数,该函数将调用 db 并获取任何查询的结果。
mainFunction将等待await完成并获取结果,您可以在其下方的行中使用。
代码看起来也很干净,易于理解。 像这样的东西,

async function mainFunction(){ 
try{
const query = `INSERT INTO aaa xxxxxx`;
const result = await queryDb(query);
//do whatever with the result;
this.getProduct(result);
}
catch(e){
//catch error
}
}
function queryDb(sql){
return new Promise( ( resolve, reject ) => {
db.query(sql,
(err, result) => {
if (err) {
return reject(err)
}
return resolve(result)
});
})
}

相关内容

  • 没有找到相关文章

最新更新