21.02.06(동기& 비동기)

_kim Hodu·2021년 2월 6일
0

IM26 TIL

목록 보기
8/12

Goals!!

• 어떤 경우에 중첩된 callback이 발생하는지 이해할 수 있다.

  • 정해야될 순서가 너무 많을때 비동기 처리 로직을 위해 콜백함수를 연속해서 사용할때 중첩된 callback으로 인해 가독성이 안좋아진다

• 중첩된 callback의 단점, Promise 의 장점을 이해할 수 있다.

  • 중첩된 callback은 가독성이 좋지않고 callback 지옥에 빠질수있어서
    그와 같은 단점을 해결하고 callback지옥에서 나올수있게 Promise를 사용한다

• Promise 사용 패턴과 언어적인 특징들을 이해할 수 있다.

New promise로 함수를 불러오고 resolved와 reject를 사용해준다

• resolve, reject의 의미와, then, catch와의 관계를 이해할 수 있다.

resolve가 실행되면 .then으로 받아오고
reject가 실행되면 .catch로 받아온다 (.then으로도 가능하지만 .catch가 효율적)

getData().then(
  handleSuccess,
  handleError
);

• Promise 에서 인자를 넘기는 방법에 대해 이해할 수 있다.

인자를 넘기는 방법으로 .then 과 .catch가 있다

• Promise의 세가지 상태를 이해할 수 있다.

대기(pending) 이행(fulfiled) 거부(rejected)

• Promise.all 의 사용법을 이해할 수 있다.

Promise.all(iterable)?
모든 프라미스가 이행될때까지 기다렸다가 그 결과값을 담은 배열을 반환하는 메서드

Promise.all은 언제 사용하는가?

여러개의 promise가 모두 resolve된 후, 다음 로직을 실행할때 경우 사용 /// 복수의 url에 요청을 보내고 모든 요청의 응답이올때 화면을 render해야하는 상황
요청에 필요한 정보를 배열로 저장해서 해당정보를 promise로 매핑

• async/await keyword에 대해 이해하고, 작동 원리를 이해할 수 있다.

async : 비동기
await : 기다리다

작동원리

1.function앞에 async 키워드를 붙인다
2.promise로 반환하는 것들 앞에 await을 붙인다
async/await에서 resolve에 인자를 넣어주면 해당 값이 awiat구문에 반환된다

실행예제

let num =0
const prom =() => new Promise(resolve => {
setTimeout( ()=>{
console.log(`${++num}번째 실행`)
resolve(num *5)
},500)
});
(async ()=>{
const num1 = await prom()
console.log(num1)
const num2 = await prom()
console.log(num2)
}) ()
===>실행결과
Promise {<pending>}
 1번째 실행
// 5
 2번째 실행
// 10

node.js의 fs 모듈의 사용법을 이해한다.

비동기

비동기는 node.js의 핵심

profile
개발자를 향해

0개의 댓글