[英]Node js promise result use in other function
I am new in node js and i need result of my first query as a parameter in another function.我是 node js 的新手,我需要我的第一个查询的结果作为另一个函数中的参数。 Here my model:这是我的模型:
return new Promise((resolve, reject) => {
var sql = "SELECT * FROM table";
db.query(sql,
(err, result) => {
if (err) {
return reject(err)
}
return resolve(result)
});
});
I need something like this我需要这样的东西
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);
}))
})
Use Async/Await.使用异步/等待。
You can make a generic
queryDb function which will call db and fetch result for any query.您可以创建一个generic
queryDb 函数,该函数将调用 db 并为任何查询获取结果。
mainFunction
will wait for await
to finish and fetch result which you can use in line below it. mainFunction
将等待await
完成并获取您可以在其下方使用的结果。
Code also looks clean and easy to understand.代码也看起来干净且易于理解。 Something like this,像这样的东西,
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)
});
})
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.