Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengendalikan Nilai Pulangan MySQL dengan Cekap dalam Node.js Menggunakan Janji?

Bagaimana untuk Mengendalikan Nilai Pulangan MySQL dengan Cekap dalam Node.js Menggunakan Janji?

Barbara Streisand
Lepaskan: 2024-10-30 03:28:28
asal
874 orang telah melayarinya

How to Efficiently Handle MySQL Return Values in Node.js Using Promises?

Menggunakan Janji untuk Mengendalikan Nilai Pulangan MySQL dalam Node.js

Dalam paradigma pengaturcaraan tak segerak ini, pengendalian nilai pulangan MySQL memerlukan pendekatan yang berbeza berbanding kepada bahasa seperti Python. Artikel ini memberi tumpuan kepada cara menstruktur semula kod menggunakan janji untuk memproses hasil MySQL dengan berkesan.

Pertimbangkan contoh berikut:

<code class="javascript">function getLastRecord(name) {
  var connection = getMySQL_connection();

  var query_str =
    "SELECT name, " +
    "FROM records " +
    "WHERE (name = ?) " +
    "LIMIT 1 ";

  var query_var = [name];

  connection.query(query_str, query_var, function (err, rows, fields) {
    //if (err) throw err;
    if (err) {
      //throw err;
      console.log(err);
      logger.info(err);
    } else {
      //console.log(rows);
      return rows;
    }
  }); //var query = connection.query(query_str, function (err, rows, fields) {
}

var rows = getLastRecord('name_record');

console.log(rows);</code>
Salin selepas log masuk

Kod ini bergelut kerana sifat tak segerak Node.js. Untuk menangani isu ini, kami boleh menggunakan penyelesaian berasaskan janji:

<code class="javascript">function getLastRecord(name) {
  return new Promise(function (resolve, reject) {
    // The Promise constructor should catch any errors thrown on
    // this tick. Alternately, try/catch and reject(err) on catch.
    var connection = getMySQL_connection();

    var query_str =
      "SELECT name, " +
      "FROM records " +
      "WHERE (name = ?) " +
      "LIMIT 1 ";

    var query_var = [name];

    connection.query(query_str, query_var, function (err, rows, fields) {
      // Call reject on error states,
      // call resolve with results
      if (err) {
        return reject(err);
      }
      resolve(rows);
    });
  });
}</code>
Salin selepas log masuk

Kini, kami boleh memproses nilai pulangan menggunakan blok then/catch:

<code class="javascript">getLastRecord('name_record').then(function (rows) {
  // now you have your rows, you can see if there are <20 of them
}).catch((err) => setImmediate(() => { throw err; })); // Throw async to escape the promise chain</code>
Salin selepas log masuk

Dengan menerima janji , kami boleh mengendalikan nilai pulangan MySQL dengan lebih cekap dalam Node.js, mengambil kesempatan daripada keupayaan tak segeraknya sambil mengekalkan kebolehbacaan.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Nilai Pulangan MySQL dengan Cekap dalam Node.js Menggunakan Janji?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan