<aside> 💡 이번 강의 문제들은 복잡한 작업을 시행하므로, 문제의 조건만 충족한다면 답안과 유사한 형태일 필요는 없습니다. 다양한 형태의 코드가 나올 수 있음을 기억하고 자신의 방식으로 코드를 작성해보세요. 🙂
</aside>
50% 확률로 ‘홀’ 또는 ‘짝’을 반환하는 비동기 작업이 있습니다. 이를 세 번 연속으로 사용하여 그 결과를 쉼표로 구분한 문자열로 받아오려 합니다. 예를 들면 ‘홀, 짝, 홀’, ‘짝, 짝, 홀’과 같은 결과가 3초 후 출력되는 것입니다. 이와 같은 작업을 콜백이 중첩된 코드로 작성해보세요.
위 1번의 코드를 Promise를 사용해서 다시 작성해보세요.
이번에는 async & await을 사용하는 코드로 다시 작성해보세요.
// 예시
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);
});