Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- fridump
- 3utools
- 안드로이드동적분석
- 위변조탐지
- 메모리취약점
- frida-client
- frida설정
- android
- 동적분석
- frida서버설정
- 중요정보검색
- goormide
- 모바일해킹
- frida-server
- checkrain
- 무료웹ide
- fowarding
- m5stack
- reverse shell
- irunit
- goorm
- ios
- m5go
- 무결성검증
- 모바일보안
- checkra1n
- 프록시
- IDE
- Frida
- 웹ide
Archives
- Today
- Total
WhiteHat Security
nodejs 동기식 처리 - async.waterfall 본문
nodejs는 기본적으로 비동기 처리를 한다.
전통적인 프로그래밍 언어만 다뤄봤던 나는 비동기 처리를 이해하는 것이 쉽지 않아 많은 삽질을 했다.
그러던 중 여러개의 api를 호출해서 동기식으로 처리해야되는 문제에 봉착했는데,
그 문제를 해결하기 위해 검색하던중 async.waterfall 을 만나게 됬다.
컴퓨터 공학을 전공한사람이라면 이름도 낯이 익을것이다. 왠지 내 문제를 해결해 줄것 같아 적용했더니 깔끔하게 해결됫다.
1. 설치
npm install async
2. 사용법
사용법은 간단하다. waterfall 안에 함수들을 실행할 함수들을 순서대로 정의해주고 마지막에,
최종적으로 처리될 함수에서 결과와 에러처리를 해주면 된다.
var async = require('async');
async.waterfall([
function(callback) {
callback(null, 'one', 'two');
},
function(arg1, arg2, callback) {
// arg1 now equals 'one' and arg2 now equals 'two'
callback(null, 'three');
},
function(arg1, callback) {
// arg1 now equals 'three'
callback(null, 'done');
}
], function (err, result) {
// result now equals 'done'
});
// Or, with named functions:
async.waterfall([
myFirstFunction,
mySecondFunction,
myLastFunction,
], function (err, result) {
// result now equals 'done'
});
function myFirstFunction(callback) {
callback(null, 'one', 'two');
}
function mySecondFunction(arg1, arg2, callback) {
// arg1 now equals 'one' and arg2 now equals 'two'
callback(null, 'three');
}
function myLastFunction(arg1, callback) {
// arg1 now equals 'three'
callback(null, 'done');
}
Comments