Rumah >pangkalan data >tutorial mysql >Bagaimanakah Async/Await dan util.promisify() Boleh Menyelesaikan Isu Pertanyaan MySQL Bersiri dalam 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(); } })();
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!