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);
});
});
}
'Javascript' 카테고리의 다른 글
(Java Script) object / array 깊은 복사 , 얕은 복사 (deep copy, shallow copy) 특히 nested object/array에 대하여 (0) | 2023.02.15 |
---|