繁体   English   中英

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

[英]Node js promise result use in other function

我是 node 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);
    }))
})

使用异步/等待。

您可以创建一个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)
    });
  })
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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