Rumah > pangkalan data > tutorial mysql > Bagaimanakah Async/Await dan util.promisify() Boleh Menyelesaikan Isu Pertanyaan MySQL Bersiri dalam Node.js?

Bagaimanakah Async/Await dan util.promisify() Boleh Menyelesaikan Isu Pertanyaan MySQL Bersiri dalam Node.js?

Mary-Kate Olsen
Lepaskan: 2024-12-03 08:22:14
asal
643 orang telah melayarinya

How Can Async/Await and util.promisify() Solve Serial MySQL Query Issues in Node.js?

Async/Await dengan MySQL dalam Node.js

Dalam Node.js, operasi tak segerak seperti panggilan pangkalan data boleh menjadi mencabar untuk diuruskan. Satu pendekatan ialah menggunakan sintaks async/menunggu, diilhamkan oleh C#. Walau bagaimanapun, sintaks ini mungkin kelihatan asing bagi pemula Node.js.

Menggunakan Async/Await for Synchronized MySQL Results

Kod yang disediakan menunjukkan situasi di mana empat pertanyaan MySQL memerlukan untuk dilaksanakan secara bersiri, dan keputusannya dilampirkan pada rentetan tunggal. Walau bagaimanapun, kerana kod berjalan serentak, pembolehubah string1 hingga string4 kekal kosong apabila rentetan akhir dilampirkan.

Untuk menangani perkara ini, Node.js versi 8 memperkenalkan util.promisify() yang membolehkan penggunaan janji dengan modul Node.js asli seperti MySQL. Begini cara anda boleh mencapai tingkah laku yang anda inginkan menggunakan async/await dan util.promisify():

const mysql = require('mysql');
const util = require('util');

const conn = mysql.createConnection({
  // your database connection parameters
});

// promisify the query method
const query = util.promisify(conn.query).bind(conn);

(async () => {
  try {
    // execute the queries asynchronously
    const [rows1, rows2, rows3, rows4] = await Promise.all([
      query('query1'),
      query('query2'),
      query('query3'),
      query('query4'),
    ]);

    // append the results to a single string
    const appendedText = rows1 + rows2 + rows3 + rows4;

    // do something with the appended text

  } catch (err) {
    // handle any errors
  } finally {
    // close the database connection
    conn.end();
  }
})();
Salin selepas log masuk

Kod yang disemak ini menggunakan async/wait untuk melaksanakan pertanyaan secara selari, memastikan bahawa keputusan diambil secara serentak, dan menyimpannya dalam tatasusunan. Tatasusunan kemudiannya digunakan untuk menggabungkan hasil ke dalam rentetan yang dikehendaki.

Atas ialah kandungan terperinci Bagaimanakah Async/Await dan util.promisify() Boleh Menyelesaikan Isu Pertanyaan MySQL Bersiri dalam Node.js?. 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