在 nodejs 中,如何在交易中使用 async/await 而不是通过 ''then' 解决承诺?

In nodejs ,how to use async/await instead of resolve promises through ''then" in transactions?

这是交易代码,我在其中使用了 promises 和 then 方法。 使用 promise/then 来解决承诺,我试图在此使用等待,但它给了我一个错误,“等待”是一个保留字。 例如:

const deleteNetValues =await this.deleteNet(aId, conn);

我们如何在这段代码中使用异步等待?我想摆脱 then.

非常感谢您的回复。

现在是代码:

   return new Promise(function (resolve, reject) {
  try {


    conn.beginTransaction(function (err) {
      if (err) {
        let res = { "success": false, "message": err.message }
        resolve(res);
        return false;
      }

    
    

      const aDetails = checkADetails(aId, conn).then(result => {
    

        if (result.length > 0) {
          const updateAsset = updateAssetDetails(
            given_name,
            location,
            desc,
            aId, conn)
        }
      
      });


      conn.commit(function (err) {
        if (err) {
          conn.rollback(function () {
            console.log(err)
            let res = { "success": false, "message": err.message }
            resolve(res)
            return false
          });
        }
        console.log('Transaction Complete.');
        conn.end();

      });

      const res = { "success": true, "message": "Net  details updated successfully" };
      resolve(res);
    });
  } catch (e) {
    console.log(e)
    return (e);
  }
})

要使用 Await,您需要处于异步函数中

conn.beginTransaction(async function (err) {
  if (err) {
    let res = { "success": false, "message": err.message }
    resolve(res);
    return false;
  }


  const deleteNetValues = await deleteNet(aId, conn);
  let netData= someData;
  netData.forEach( netAddress => 
  {
   const inserNet = inserteNetValue(netAddress, aId, conn);
  });

 //delete all dn

  const deleteDNvalues = deleteDN(aId, conn);

  let dnData = nameDescData;
  dnsData.forEach( dnAddress => {
   const addDNvalues = insertDNValue(dnAddress, aId, conn);
  });


  const aDetails = checkADetails(aId, conn).then(result => {


    if (result.length > 0) {
      const updateAsset = updateAssetDetails(
        given_name,
        location,
        desc,
        aId, conn)
    }
  
  });


  conn.commit(function (err) {
    if (err) {
      conn.rollback(function () {
        console.log(err)
        let res = { "success": false, "message": err.message }
        resolve(res)
        return false
      });
    }
    console.log('Transaction Complete.');
    conn.end();

  });

  const res = { "success": true, "message": "Net  details updated successfully" };
  resolve(res);
});

更多信息 https://javascript.info/async-await#await