특정 코드의 실행이 완료될 때까지 기다리고 난 후 다음 코드를 수행하는 것
특정 코드의 실행이 완료될 때까지 기다리지 않고 다음 코드를 수행하는 것
setTimeout(callback, millisecond) : 일정 시간 후에 함수를 실행
setTimeout(function() {
console.log("첫 번째 메시지")
}, 5000); // 5초 후 콘솔창에 첫 번째 메시지 출력
clearTimeout(timerId) : setTimeout 타이머를 종료
const timer = setTimeout(function() {
console.log("첫 번쨰 메시지")
}, 5000);
clearTimeout(timer);
setInterval(callback, millisecond) : 일정 시간의 간격을 가지고 함수를 반복적으로 실행
setInterval(function() {
console.log("첫 번째 메시지")
}, 1000);
clearInterval(timerId) : setInterval 타이머를 종료
const timer = setInterval(function() {
console.log("첫 번째 메시지")
}, 1000);
clearInterval(timer);
https://github.com/forhrever/fe-sprint-async-and-promise.git
promiseConstructor.js
const sleep = (wait) => {
return new Promise((resolve) => {
setTimeout(() => { // 일정 시간 후에 함수를 실행
resolve('hello'); // 타이머 아이디
}, wait);
});
}
script.js
function runPromise() {
resetTitle(); // 제목을 초기화합니다.
playVideo(); // 영상을 재생합니다.
sleep(1000).then((param) => {
console.log(param); //sleep(1000)에서 return 값으로 나온 hello를 첫번째 then 이 param으로 받고 출력하고
pauseVideo(); // 영상을 멈춥니다.
displayTitle(); // 제목을 표시합니다.
return "world"; // world 출력
})
.then((param) => {
console.log(param); // 리턴값으로 준 world가 두번쨰 then에서 param으로 받습니다
return sleep(5000); // 5초 실행 ?
})
.then(highlightTitle) // 제목을 강조합니다. // than()으로 여러 개의 프로미스를 연결하는 방식
.then(sleep.bind(null, 2000)) // 2초후에 실행?
.then(resetTitle) // 제목을 초기화합니다.
.catch(err => {
console.log(err);
})
}
// 제목을 초기화합니다 / 영상을 재생합니다. -> 1초 후 -> 영상을 멈춥니다. / 제목을 표시합니다. -> 5초 후 -> 제목을 강조합니다. -> 2초 후 -> 제목을 초기화합니다.
Q : Promise 실행 함수가 가지고 있는 두 개의 파라미터 resolve 와 reject 는 각각 무엇을 의미하나요?
Q : resolve, reject함수에는 전달인자를 넘길 수 있습니다. 이때 넘기는 전달인자는 어떻게 사용할 수 있나요?
Q : new Promise()를 통해 생성한 Promise 인스턴스에는 어떤 메서드가 존재하나요? 각각은 어떤 용도인가요?
Q : Promise.prototype.then 메서드는 무엇을 리턴하나요? -> 성공했을때
Q : Promise.prototype.catch 메서드는 무엇을 리턴하나요? -> 실패했을때
Q : Promise의 세 가지 상태는 각각 무엇이며, 어떤 의미를 가지나요?
Q : await 키워드 다음에 등장하는 함수 실행은 어떤 타입을 리턴할 경우에만 의미가 있나요?
Q : await 키워드를 사용할 경우, 어떤 값이 리턴되나요?