-
노드 Promise 패턴@19.1 ~ /Nodejs 2020. 6. 11. 00:04
1 순차패턴, 순차적으로 반복하는 패턴
let tasks = [ ... ] let promise = Promise.resolve(); tasks.forEach(task => { promise = promise.then(()=>{ return task(); }); }); promise.then(()=>{ //모든 작업들이 완료 }); //foreach 대신에 reduce()함수 사용 let tasks = [ ... ] let promise = tasks.reduce((prev, task) => { return prev.then(()=>{ return task(); }); }, Promise.resolve()); promise.then(()=>{ //모든 작업들이 완료 });
이 패턴을 간단히 적용하면 모든 작업 결과를 배열로 수집할 수 있어 맵핑 알고리즘을 구현하거나 필터를 만드는 등의 작업을 할 수 있다
2. 병렬 실행
내장된 Promise.all()을 사용하는 것이 전부입니다
이 함수는 입력에서 받은 모든 프라미스들이 이행될 떄만 이행되는 또 다른 프라미스를 만듭니다
이것은 다양한 프라미스들이 결정되는 사이에 다른 명령이 실행되지 않기 때문에 본질적으로 병렬실행입니다
'@19.1 ~ > Nodejs' 카테고리의 다른 글
프록시 패턴 (0) 2020.06.19 모듈 정의패턴 (0) 2020.06.03 콜백 규칙 및 예외처리 (0) 2020.05.31 Map, WeakMap (0) 2020.05.31