[typescript] 프로미스 체이닝을 사용하여 데이터베이스 연동하는 방법은?
import * as mysql from 'mysql';
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydb'
});
connection.connect((err) => {
if (err) throw err;
console.log('Connected to database');
});
const query1 = "SELECT * FROM table1";
const query2 = "SELECT * FROM table2";
new Promise((resolve, reject) => {
connection.query(query1, (err, results) => {
if (err) {
reject(err);
} else {
resolve(results);
}
});
}).then((result1) => {
console.log(result1);
return new Promise((resolve, reject) => {
connection.query(query2, (err, results) => {
if (err) {
reject(err);
} else {
resolve(results);
}
});
});
}).then((result2) => {
console.log(result2);
}).catch((err) => {
console.error(err);
}).finally(() => {
connection.end();
});
위의 코드에서는 먼저 MySQL 데이터베이스에 연결하고, 두 개의 쿼리를 순차적으로 실행하는 방법을 보여줍니다. 첫 번째 쿼리의 결과를 받아오면 두 번째 쿼리를 실행하고, 그 결과를 출력하는 간단한 프로미스 체이닝이 구현되어 있습니다.
이 예제는 MySQL 데이터베이스를 사용한 프로미스 체이닝의 구현을 보여주는 간단한 예시일 뿐입니다. 사실상 사용하는 데이터베이스나 환경에 따라 코드가 달라질 수 있으며, 프로미스를 활용한 비동기 작업 처리에 대한 이해가 필요합니다.