<aside> 💡 이번 강의 문제들은 복잡한 작업을 시행하므로, 문제의 조건만 충족한다면 답안과 유사한 형태일 필요는 없습니다. 다양한 형태의 코드가 나올 수 있음을 기억하고 자신의 방식으로 코드를 작성해보세요. 🙂

</aside>

1.

50% 확률로 ‘홀’ 또는 ‘짝’을 반환하는 비동기 작업이 있습니다. 이를 세 번 연속으로 사용하여 그 결과를 쉼표로 구분한 문자열로 받아오려 합니다. 예를 들면 ‘홀, 짝, 홀’, ‘짝, 짝, 홀’과 같은 결과가 3초 후 출력되는 것입니다. 이와 같은 작업을 콜백이 중첩된 코드로 작성해보세요.

2.

위 1번의 코드를 Promise를 사용해서 다시 작성해보세요.

3.

이번에는 async & await을 사용하는 코드로 다시 작성해보세요.


1.

//  예시

function getOddEven(callback) {
    setTimeout(() => {
        const res = Math.random() < 0.5 ? '홀' : '짝';
        callback(res);
    }, 1000);
}

function concatRes(callback) {
    getOddEven((res1) => {
        getOddEven((res2) => {
            getOddEven((res3) => {
                const finalRes = res1 + ', ' + res2 + ', ' + res3;
                callback(finalRes);
            });
        });
    });
}

concatRes((res) => {
    console.log(res);
});

2.