我是节点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);
}))
})
答案 0 :(得分:0)
使用异步/等待。
您可以创建一个generic
queryDb函数,该函数将调用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)
});
})
}