Versprechen zur Verarbeitung von MySQL-Rückgabewerten in Node.js verwenden
In diesem asynchronen Programmierparadigma erfordert die Verarbeitung von MySQL-Rückgabewerten einen anderen Ansatz zu Sprachen wie Python. Dieser Artikel konzentriert sich auf die Umstrukturierung von Code mithilfe von Versprechen, um MySQL-Ergebnisse effektiv zu verarbeiten.
Betrachten Sie das folgende Beispiel:
<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>
Dieser Code hat aufgrund der asynchronen Natur von Node.js Probleme. Um dieses Problem anzugehen, können wir eine auf Versprechen basierende Lösung übernehmen:
<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>
Jetzt können wir den Rückgabewert mithilfe eines then/catch-Blocks verarbeiten:
<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>
Indem wir Versprechen annehmen können wir MySQL-Rückgabewerte in Node.js effizienter verarbeiten und dabei die asynchronen Funktionen nutzen und gleichzeitig die Lesbarkeit beibehalten.
Das obige ist der detaillierte Inhalt vonWie kann man MySQL-Rückgabewerte in Node.js mithilfe von Versprechen effizient verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!