[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 데이터베이스를 사용한 프로미스 체이닝의 구현을 보여주는 간단한 예시일 뿐입니다. 사실상 사용하는 데이터베이스나 환경에 따라 코드가 달라질 수 있으며, 프로미스를 활용한 비동기 작업 처리에 대한 이해가 필요합니다.