Rumah > pangkalan data > tutorial mysql > Bagaimanakah Async/Await Boleh Menyegerakkan Keputusan Pertanyaan MySQL Node.js?

Bagaimanakah Async/Await Boleh Menyegerakkan Keputusan Pertanyaan MySQL Node.js?

Patricia Arquette
Lepaskan: 2024-11-29 05:58:13
asal
299 orang telah melayarinya

How Can Async/Await Synchronize Node.js MySQL Query Results?

Menyegerakkan Keputusan Node.js dengan Async/Await for MySQL

Dalam Node.js, pengendalian operasi tak segerak boleh menjadi mencabar, terutamanya apabila anda perlu menyegerakkan keputusan sebelum meneruskan. Menggunakan kata kunci async/menunggu ialah pendekatan yang mudah untuk mencapainya.

Dalam coretan kod yang disediakan, anda menyasarkan untuk mendapatkan semula hasil daripada empat pertanyaan berasingan dan menambahkannya pada rentetan bercantum. Walau bagaimanapun, pendekatan berasaskan panggil balik konvensional menimbulkan cabaran kerana pembolehubah kekal kosong memandangkan kod di bawah pertanyaan dijalankan dahulu.

Untuk mengatasi isu ini, Node.js versi 8 memperkenalkan fungsi util.promisify() asli . Fungsi ini membolehkan anda menukar fungsi berasaskan panggilan balik kepada yang berasaskan janji. Dengan memanfaatkan util.promisify() dan modul mysql nod, anda boleh menulis kod berikut:

// Import required modules
const mysql = require('mysql');
const util = require('util');

// Create a MySQL connection
const conn = mysql.createConnection({/* connection parameters */});

// Promisify the query method using util.promisify().
// Remember to use .bind() to maintain the correct this context.
const query = util.promisify(conn.query).bind(conn);

// Execute queries concurrently using async/await
const main = async () => {
  try {
    const rows1 = await query(/* query string */);
    const rows2 = await query(/* query string */);
    const rows3 = await query(/* query string */);
    const rows4 = await query(/* query string */);

    // Append the results to a single string
    let appendedText = `${rows1} ${rows2} ${rows3} ${rows4}`;

    // Use the appendedText as needed
  } catch (err) {
    // Handle errors
  } finally {
    // Close the connection
    conn.end();
  }
};

// Start the process
main();
Salin selepas log masuk

Kod ini akan melaksanakan pertanyaan secara serentak dan menunggu keputusan tersedia sebelum meneruskan. Baris daripada setiap pertanyaan akan dilampirkan pada rentetan AppendedText, yang kemudiannya boleh anda gunakan untuk pemprosesan selanjutnya.

Atas ialah kandungan terperinci Bagaimanakah Async/Await Boleh Menyegerakkan Keputusan Pertanyaan MySQL 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