Heim  >  Artikel  >  Datenbank  >  Wie können Versprechen verwendet werden, um asynchrone MySQL-Ergebnisse in Node.js zu verarbeiten?

Wie können Versprechen verwendet werden, um asynchrone MySQL-Ergebnisse in Node.js zu verarbeiten?

Linda Hamilton
Linda HamiltonOriginal
2024-10-27 03:43:03580Durchsuche

How can Promises be Used to Handle Asynchronous MySQL Results in Node.js?

Verwenden Sie Versprechen, um MySQL-Rückgabewerte in Node.js zu verarbeiten

Die asynchrone Natur von Node.js stellt Entwickler, die an synchrone Programmierung gewöhnt sind, vor Herausforderungen. Dies kann mit einer Funktion wie getLastRecord veranschaulicht werden, die Daten von einer MySQL-Funktion abruft.

Beim Versuch, einen Wert von getLastRecord zurückzugeben, können Entwickler aufgrund der asynchronen Natur des Knotens auf Probleme stoßen. So beheben Sie dieses Problem mit Promises:

<code class="javascript">function getLastRecord(name) {
  return new Promise((resolve, reject) => {
    const connection = getMySQL_connection();
    const query_str =
      "SELECT name, " +
      "FROM records " +   
      "WHERE (name = ?) " +
      "LIMIT 1 ";
    const query_var = [name];

    connection.query(query_str, query_var, (err, rows, fields) => {
      if (err) {
        return reject(err);
      }
      resolve(rows);
    });
  });
}</code>

Um den zurückgegebenen Wert zu verarbeiten, können Sie then verwenden und Callbacks abfangen:

<code class="javascript">getLastRecord('name_record').then(function(rows) {
  // Processing of rows goes here
}).catch((err) => { throw err; });</code>

Promises ermöglichen es Ihnen, die Verschachtelung von Callbacks zu vermeiden und den Code zu verbessern Lesbarkeit. Sie werden besonders nützlich, wenn sie mit Promise.all und Akkumulatoren wie Array.prototype.reduce kombiniert werden.

Das obige ist der detaillierte Inhalt vonWie können Versprechen verwendet werden, um asynchrone MySQL-Ergebnisse in Node.js zu verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn