[javascript] Underscore.js를 사용하여 비동기 함수의 순차 실행을 제어하는 방법은 어떻게 되나요?
Underscore.js는 자바스크립트 유틸리티 라이브러리로, 비동기 함수의 순차 실행을 제어하는 것도 가능합니다. 이를 위해 async.series
메서드를 사용할 수 있습니다.
먼저, Underscore.js와 함께 async.js
라이브러리를 설치해야 합니다. async.js
는 비동기 프로그래밍을 간편하게 다룰 수 있도록 도와주는 라이브러리입니다. 다음 명령을 통해 async.js
를 설치할 수 있습니다:
npm install async
이제 아래의 예시 코드를 살펴보겠습니다:
const async = require('async');
// 비동기 함수 1
function asyncFunction1(callback) {
setTimeout(() => {
console.log('Async Function 1');
callback(null, 'Result 1');
}, 2000);
}
// 비동기 함수 2
function asyncFunction2(callback) {
setTimeout(() => {
console.log('Async Function 2');
callback(null, 'Result 2');
}, 1000);
}
// 비동기 함수 3
function asyncFunction3(callback) {
setTimeout(() => {
console.log('Async Function 3');
callback(null, 'Result 3');
}, 1500);
}
// 비동기 함수들을 순차적으로 실행
async.series([
asyncFunction1,
asyncFunction2,
asyncFunction3
], (err, results) => {
if (err) {
console.error('에러 발생:', err);
} else {
console.log('결과:', results);
}
});
위 코드에서 asyncFunction1
, asyncFunction2
, asyncFunction3
은 각각 비동기 함수를 나타냅니다. 이 함수들은 순차적으로 실행되어야 하며, 실행 결과는 results
배열에 담겨 반환됩니다. async.series
메서드를 사용하여 이러한 비동기 함수들을 순차적으로 제어할 수 있습니다.
위 코드를 실행하면 asyncFunction1
, asyncFunction2
, asyncFunction3
이 순차적으로 실행되는 것을 확인할 수 있습니다. 각 함수의 실행 결과 역시 results
배열에 담겨 출력됩니다.
Underscore.js의 async.series
메서드를 통해 비동기 함수의 순차 실행을 제어할 수 있으며, 이를 통해 보다 직관적이고 효율적인 비동기 프로그래밍을 구현할 수 있습니다.
참고 자료: