for of
- 별도의 변수를 선언하지않아도 배열의 원소를 하나씩 가져옴
const seoul = ['강동구', '강서구', '강남구', '강북구']
for (let index of seoul) {
console.log(index)
}
for in
- index를 가지고 원하는 방식으로 원소를 가져올 수 있음
const seoul = ['강동구', '강서구', '강남구', '강북구']
for (let index in seoul) {
console.log(index, seoul[index])
}
forEach
- 별도의 변수를 선언하지않아도 배열의 원소를 하나씩 가져옴
let newArray = ['윤승근', '고효민', '김지호', '나민지']
newArray.forEach((people) => {
console.log(people)
})
Arrow Functions
const newFunction = () => {
console.log('윤로그')
}
newFunction();
const newFunction = () => console.log('윤로그')
Promise
- 비동기 처리를 위해 사용하는 문법 콜백 지옥(Callback Hell) 해결
상태
1. Promise 처음 생성 시 Pending(대기) 상태
const promise = new Promise((resolve, reject) => {});
console.log(promise);
2. 조건 분기를하여 resolve가 실행되면 Fulfilled(이행) 상태
const promise = new Promise((resolve, reject) => {
resolve();
});
console.log(promise);
3. reject가 실행되면 rejectred(실패) 상태
const promise = new Promise((resolve, reject) => {
reject();
});
console.log(promise);
Producer
- Promise를 생성하면 Promise의 내부 코드 블럭이 실행 이를 Executor라고 함
이 Executor의 실행 결과에따라 조건 분기를하여 resolve 혹은 reject 호출
const isReady = true;
const promise = new Promise((resolve, reject) => {
console.log("프로미스 생성");
if (isReady) {
resolve("Ready");
} else {
reject("Not ready");
}
});
Consumer
- Promise의 결과에따라 후처리를 함 Promise가 정상적으로 실행되서 resolve가 되었으면 then을 통해 처리 reject가 될 경우 catch를 통해 처리
const isReady = true;
const promise = new Promise((resolve, reject) => {
console.log("프로미스생 생성");
if (isReady) {
resolve("Ready");
} else {
reject("Not ready");
}
});
promise
.then(messsage => {
console.log(messsage);
})
.catch(error => {
console.error(error);
})