▤ 예제 1) 비동기 코딩의 단점
-> setTimeout() : 일정시간 지연해서 실행하는 함수
-> setTimeout(함수(), 지연시간) : 지연해서 함수가 실행됨
// 변수 = (안에) 함수() ; let goSchool = setTimeout(()=>{ // 코딩 console.log("학교에 도착"); }, 1000) // 1st 코딩: 실행 console.log("학교에 감"); goSchool ; // 2nd 실행 console.log("학교에서 코딩함");
-동기 : 결과를 기다렸다가 실행하고 결과 확인
-비동기 : 결과를 기다리지 않는다.
결과가 언제 올 지 모른다.
let 함수명 = async () => (await Promise 함수()};let goSchool = new Promise((resolve, reject) => {
// 2초 지연 함수 : Promise 객체에 넣음
setTimeout(function () {
console.log("학교에 도착");
// resolve() : 결과 성공했다는 확인 함수
resolve();
}, 2000);
});
// TODO: *)
let myFunc = async () => {
// 비동기 코딩
try {
// TODO: 결과 순서에 맞게 실행시킬수 있음
await goSchool; // Promise 객체안에 함수가 실행되고 결과가 올때까지 기다림
console.log("학교에서 코딩함"); // 결과를 받고 실행됨
} catch(e) {
console.log(e);
}
};
myFunc(); // 실행
