집 >데이터 베이스 >MySQL 튜토리얼 >Promise를 사용하여 Node.js에서 MySQL 반환 값을 효율적으로 처리하는 방법은 무엇입니까?
Promise를 사용하여 Node.js에서 MySQL 반환 값 처리
이 비동기 프로그래밍 패러다임에서 MySQL 반환 값을 처리하려면 다른 접근 방식이 필요합니다. Python과 같은 언어에. 이 기사에서는 MySQL 결과를 효과적으로 처리하기 위해 Promise를 사용하여 코드를 재구성하는 방법에 중점을 둡니다.
다음 예를 고려하세요.
<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>
이 코드는 Node.js의 비동기 특성으로 인해 어려움을 겪습니다. 이 문제를 해결하기 위해 Promise 기반 솔루션을 채택할 수 있습니다.
<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>
이제 then/catch 블록을 사용하여 반환 값을 처리할 수 있습니다.
<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>
Promise를 수용하여 , 가독성을 유지하면서 비동기 기능을 활용하여 Node.js에서 MySQL 반환 값을 보다 효율적으로 처리할 수 있습니다.
위 내용은 Promise를 사용하여 Node.js에서 MySQL 반환 값을 효율적으로 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!