JS / Node 비동기
- Synchronous(동기)
- 순차적 실행
- Blocking : 하나의 작업이 끝날 때 까지 이어지는 작업을 막는 것
- Asynchronous(비동기)
- 순차적으로 실행되지 않음
- Non-Blocking : 하나의 작업이 끝나지 않았다라도 다음 작업도 하는것
- 백그라운드 실행, 로딩 창 등의 작업
- 서버로 요청 및 응답
- 용량이 큰 파일을 로딩하는 작업
- Call Back Function
- Promise
- 나중에 사용하게 될 값을 생산하는 객체
resolve
: 실행할 함수
reject
: 실행할 함수를 실행하지 못했을 때 반환값
- 상태
Fulfilled
: onFulfilled() 호출
Rejected
: onRejected() 호출
Pending
: Fulfilled
또는 Rejected
상태가 아닌 상태
- Chainning
.then()
과 .catch()
를 이용해 try/cath문처럼 사용
fetch(url)
.then(process)
.then(save)
.catch(handleErrors)
;
Timer API
setTimeout(callback,millisecond)
: 일정 시간 이후 실행
- arguments: 실행할 callback 함수, callback 함수 실행 전 기다려야 할 시간 (밀리초)
- return value: 임의의 타이머 ID
setTimeout(function () {
console.log('1초 후 실행');
}, 1000);
setInterval(callback , millisecond)
: 일정 시간의 간격을 가지고 함수를 반복적으로 실행
- arguments: 실행할 callback 함수, 반복적으로 함수를 실행시키기 위한 시간 간격 (밀리초)
- return value: 임의의 타이머 ID
setInterval(function () {
console.log('1초마다 실행');
}, 1000);
clearInterval(timerId)
: 반복 실행중인 타이머를 종료
- arguments: 타이머 ID
- return value: 없음
const timer = setInterval(function () {
console.log('1초마다 실행');
}, 1000);
clearInterval(timer);