본문 바로가기
TIL/Node JS

promisify, callback, promise, async

by koreashowme 2019. 10. 20.

// callbackify 다시 콜백으로 되돌려줌.

// promisefy!!!!!!! 제일 중요하다.

// deprecate 서비스 중단 하기전 미리 warning 줄 수 있음. 

 

const util = require('util');

const crypto = require('crypto');

 

const dontuseme = util.deprecate( (x,y) =>{

console.log(x + y);

}, ' 조금 있으면 지원하지 않습니다. (12월) ')

 

dontuseme(1,2);

// 지원이 조만간 중단될 메서드임을 알려줄때 사용

// ex) 서비스가 바로 망가지는 것을 막아주기 위해 알려줌.

 

const randomBytesPromise = util.promisify(crpyto.randomeBytes);

const pbkdf2Promise = util.promisify(crypto.pbkdf2);

// randomeBytes는 따로 promies를 사용 못하기 때문에 util.promisify를 사용함.

 

crypto.randomeBytes(64, (err) => {

const salt = buf.toString('base64');

crypto.pbkdf2('kim', salt, 123213, 64, 'sha512', (err, key) => {

console.log('pw', key.toString('base64'));

console.timeEnd('암호화');

});

});



randomBytesPromise(64)

.then((buf) => {

const salt = buf.toString('base64');

return pbkdf2Promise('kim', salt, 123213, 64, 'sha512');

})

.then((key) => {

 

})

.catch((err) => {

console.error(err);

})

 

(async (() => {

const buf = await randomBytesPromise(64);

const salt = buf.toString('base64');

const key = await pbkdf2Promise('kim', salt, 123213, 64, 'sha512');

console.log('pw', key.toString('base64'));

}))

'TIL > Node JS' 카테고리의 다른 글

버퍼, 스트리밍 (2)  (0) 2019.10.20
버퍼, 스트리밍 (1)  (0) 2019.10.20
URL 모듈 , querystring 모듈  (0) 2019.10.20
OS, **path**  (0) 2019.10.20
__dirname, __filename, process  (0) 2019.10.20

comment