화살표 함수
add1, add2, add3, add4는 같은 기능을 하는 함수
add2: add1을 화살표 함수로 나타낼 수 있음
add3: 함수의 본문이 return만 있는 경우 return 생략
add4: return이 생략된 함수의 본문을 소괄호로 감싸줄 수 있음
not1과 not2도 같은 기능
매개변수 하나일 때 괄호 생략
객체를 return하는 경우에는 소괄호 필수
화살표 함수가 기존 function() {}을 대체하는건 아님(this가 달라짐)that이라는 중간 변수를 이용해서 화살표함수의 this 전달
this쓸거면 function사용, this안쓸거면 화살표함수 사용
프로미스
콜백 헬이라고 불리는 지저분한 자바스크립트 코드의 해결책
프로미스: 내용이 실행은 되었지만 결과를 아직 반환하지 않은 객체
Then을 붙이면 결과 반환
실행이 완료되지 않았으면 완료된 후에 Then내부함수 실행
Resolve(성공리턴값) -> then으로 연결
Reject(실패리턴값) -> catch로 연결
Finally부분은 무조건 실행됨
프로미스 체이닝
프로미스의 then 연달아 사용가능
then 안에서 return한 값이 다음 then으로 넘어감
return값이 프로미스면 resolve 후 넘어감
에러가 난 경우 바로 catch로 이동해서 한번에 처리
Promise.resolve(성공리턴값): 바로 resolve하는 프로미스
Promise.reject(실패리턴값): 바로 reject하는 프로미스
Promise.all(배열): 여러 개의 프로미스를 동시에 실행하나라도 실패하면 catch로 감
allSettled로 실패한것만 추릴 수 있음
async/await
더 축약 가능
화살표함수도 가능
async함수는 항상 promise 반환
Then이나 await을 붙일 수 있음
async function
변수 = await.프로미스;
프로미스가 resolve된 값이 변수에 저장
변수 await 값;
값이 변수에 저장
try catch
각각의 프로미스 에러처리를 위해 각각을 try catch로 감싸야함
for await of
resolve된 프로미스가 변수에 담겨나옴
await을 사용하기 때문에 async함수안에서 해야함
promise를 반복할때 사용