npm 모듈을 사용하다보면 promise 객체를 리턴하지 않아서 콜백으로만 결과를 처리해야 하는 모듈이 있다.

필자는 sqlite3 모듈을 사용중 db.get 함수의 리턴이 promiser가 아니었다.

그래서 해당 모듈의 결과는 콜백으로 받아야 하고 그 결과를 부모 호출자에게 보내기 위해서 Promise로 변환하는 작업이 필요했다.

 

import { Database } from 'sqlite3';
const db = new Database('db.sqlite');

export async function testSqlite(sender: any) {
  db.get('SELECT RANDOM() % 100 as result', (_: any, res: any) => {
    console.log(res);
  });
}

export async function testSqlite2() {
  return new Promise((resolve, reject) => {
    db.get('SELECT RANDOM() % 100 as result', (_: any, res: any) => {
      // if res 가 에러이면 reject(에러)
      //   console.log(res);
      resolve(res);
    });
  });
}

 

+ Recent posts