簡體   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