반응형
node.js에서 비동기 프로그래밍을 위해서 사용할 수 있는 deferred 라이브러리를 정리해보자.
우선 deferred의 경우에는 이전글에 작성했던 Promise와 동일한 개념이다. (https://wedul.tistory.com/508) promise와 마찬가지로 deferred는 비동기로 작업을 진행하고 비동기 처리가 완료되고 resolve, reject 메소드를 실행해서 비동기 동작 이후에 결과를 전달 할 수 있다.
우선 필요한 라이브러리를 다운로드 받아보자.
https://www.npmjs.com/package/deferred
1 | npm i deferred | cs |
그리고 라이브러리 예제에 나와있는대로 deferred 라이브러리를 사용해서 비동기 프로그램을 실행시켜보면 간단하게 promise와 동일 한 방식으로 진행할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | 'use strict'; const deferred = require('deferred'); const promiseTest = require('./promise-test'); const deferredTest = module.exports; deferredTest.deferTest = () => { return () => { const def = deferred(); setTimeout(async () => { try { let dd = await promiseTest.proTest(true); if (dd.message == 'test') { def.reject('Error'); } else { def.resolve(dd); } } catch (e) { def.reject(e); } }, 1000); return def.promise; }; }; // 테스트 const deferredTest = require('../../lib/libraryTest/deferred-test'); it('deferred Test', async () => { try { let dd = await deferredTest.deferTest()(); console.log(dd); } catch (e) { console.log(e); } }); | cs |
반응형
'web > javaScript' 카테고리의 다른 글
Javascript에서 epoch second 구하기 (0) | 2018.10.13 |
---|---|
Javascript promise에 대해 알아보자. (0) | 2018.10.06 |
Rest Operator와 Spread Operator (0) | 2018.10.06 |
html의 화면을 캡쳐해서 이미지로 변경하는 html2canvas와 pdf로 저장하는 jsPDF 라이브러리 소개 (8) | 2018.06.29 |
JQuery함수의 append와 appendTo 차이 (0) | 2018.06.19 |