node.js 섹션1 알아두어야 할 자바스크립트

박예원·2023년 9월 24일
0

2.2 ES2015+

화살표 함수

화살표 함수

add1, add2, add3, add4는 같은 기능을 하는 함수
add2: add1을 화살표 함수로 나타낼 수 있음
add3: 함수의 본문이 return만 있는 경우 return 생략
add4: return이 생략된 함수의 본문을 소괄호로 감싸줄 수 있음

not1과 not2도 같은 기능

매개변수 하나일 때 괄호 생략

객체를 return하는 경우에는 소괄호 필수
화살표 함수가 기존 function() {}을 대체하는건 아님(this가 달라짐)

that이라는 중간 변수를 이용해서 화살표함수의 this 전달
this쓸거면 function사용, this안쓸거면 화살표함수 사용


Promise, async/await

프로미스

콜백 헬이라고 불리는 지저분한 자바스크립트 코드의 해결책
프로미스: 내용이 실행은 되었지만 결과를 아직 반환하지 않은 객체

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를 반복할때 사용


profile
안녕하세요.

0개의 댓글