简体   繁体   English

Node js承诺结果在其他功能中使用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM