JS CallBack

Yeara Choi·2024년 7월 7일

HGU-Web-Camp

목록 보기
2/4
post-thumbnail

CallBack함수

전달인자로 다른 함수에 전달되는 함수

동기식 콜백은 중간에 비동기 작업 없이 외부 함수 호출 직후에 바로 호출,

비동기식 콜백은 비동기 작업이 완료된 후 나중에 호출됨

let value = 1;

doSomething(() => {
  value = 2;
});

console.log(value);

동기식 콜백 호출 경우 결과는 2,

비동기식의 경우 결과는 1

Synchronous Asynchronous

동기식, 프로그램이 직렬적으로 수행(task를 위부터 아래까지 순서대로)

→ 차례에 맞게 실행됨으로 순서를 예측하기 쉬움

비동기식, 병렬적으로 독립적으로 수행(순서대로 task를 실행하지 않음)

→ 동시다발적으로 실행되므로 예측 어렵고 혼란스러움, 그러나 빠른 장점

서버와의 통신(언제 끝날지 알 수 없는 작업들)은 비동기적으로 처리하는 경우가 많다

Promise

ex) javascript fetch api

fetch("https://jsonplaceholder.typicode.com/posts/1")
  .then((response) => response.json())
  .then((data) => console.log(data));

위의 fetch함수와 같이, 어떤 함수의 리턴값이 Promise이면, 그 작업은 비동기적으로 동작할 가능성이 크다.

이 함수가 리턴한 값은 2개의 method(.then, .catch)를 사용할 수 있다.

then과 catch는 모두 콜백 함수를 받고, 파라미터를 하나씩 가진다

성공했을 경우, then으로 전달된 함수가 실행되고 실패했을 경우 catch로 전달된 함수가 실행된다

0개의 댓글