"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como lidar com valores de retorno do MySQL de forma assíncrona em Node.js com promessas?

Como lidar com valores de retorno do MySQL de forma assíncrona em Node.js com promessas?

Publicado em 2024-11-09
Navegar:379

How to Handle MySQL Return Values Asynchronously in Node.js with Promises?

Aproveitando promessas para processar valores de retorno do MySQL em Node.js

Na transição de Python para Node.js, a natureza assíncrona do Node. js pode apresentar desafios. Considere um cenário em que você precisa retornar um valor de uma função MySQL, como getLastRecord(name).

Tradicionalmente, o Node.js usa retornos de chamada para operações assíncronas. No entanto, para lidar com a natureza assíncrona de getLastRecord(), aproveitaremos Promises.

Para implementar a função usando uma Promise:

function getLastRecord(name) {
  return new Promise((resolve, reject) => {
    // Setup MySQL connection and query
    // ...

    connection.query(query_str, query_var, (err, rows, fields) => {
      if (err) {
        return reject(err); // Handle error
      }
      resolve(rows); // Resolve with results
    }); // Callback function
  });
}

Para lidar com o valor retornado, você pode encadear retornos de chamada .then() e .catch() para a promessa:

getLastRecord('name_record')
  .then((rows) => {
    // Handle returned rows here
    console.log(rows);
  })
  .catch((err) => {
    // Handle errors here
    console.log(err);
  });

Você também pode implementar a verificação condicional:

getLastRecord('name_record')
  .then((rows) => {
    if (rows.length > 20) {
      console.log('action');
    }
  });

Ao adotar Promises neste cenário, você introduz uma abordagem mais estruturada e legível para lidar com operações assíncronas, garantindo uma base de código mais limpa e de fácil manutenção.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3