JavaScript에서 콜백으로 비동기 결과 전달하기
이제 비동기 작업이 완료된 후 콘솔에 아무것도 출력하지 않고 어떤 결과를 얻는다고 가정해 보겠습니다. 이것은 예를 들어 AJAX를 통해 얻을 수 있었을 데이터 배열이 될 수 있습니다. 하지만 아직은 AJAX로 작업하는 방법을 모르기 때문에 그냥 그것을 얻는 것을 시뮬레이션해 보겠습니다:
function make() {
setTimeout(function() {
let res = [1, 2, 3, 4, 5]; // 결과 배열
}, 3000);
}
결과 배열이 콜백의 매개변수로 전달되도록 만들어 보겠습니다:
function make(callback) {
setTimeout(function() {
let res = [1, 2, 3, 4, 5];
callback(res); // 결과를 매개변수로 전달
}, 3000);
}
이제 함수 make 호출 시 콜백을 전달할 때
매개변수를 쓸 수 있습니다.
- 그리고 이 매개변수에는 비동기 작업의 결과가
들어갑니다:
make(function(res) {
console.log(res); // 우리의 배열
});
결과 배열의 요소 합계를 찾도록 콜백 코드를 완성하세요.