티스토리 뷰
728x90
반응형
비동기 작업

- 비동기적 작업 : 싱글 스레드 방식을 이용하면서, 동기적 작업의 단점을 극복하기 위해 여러개의 작업을 동시에 실행 시키도록 하는 방식
- 논 블로킹 방식 : 하나의 작업이 스레드를 점유 하지 않아 스레드가 다른 작업을 하지 못하는 블로킹을 하지 않는 방식
비동기 작업의 문제점
비동기 작업은 특정 로직의 실행이 끝날 때 까지 기다리지 않고, 나머지 코드를 실행한다.
대표적인 비동기 작업인 Ajax 통신을 한다고 가정했을 때,function getData(){
let data;
$.ajax({
type: 'post',
url: 'https://espania.github.io'/,
data: {
//
}
success: function(result){
data = result;
}
});
return data;
}
console.log(getData()); //undefined 출력
Ajax로 데이터를 요청하고 응답값을 받기 전에 'return data;' 가 실행되기 때문에
getData의 return 값은 undefined가 출력된다.
그러므로 위와 같은 문제점들을 해결 하기 위해 비동기 작업을 포함한 함수를 실행할 때 매개 변수로 콜백 함수를 붙여서 호출 하는 방법을 사용한다.
참고
https://espania.tistory.com/334
[javascript] 싱글 스레드 작업 수행 방식이 어떻게 될까요??
스레드 (Single Thread = 한 가닥) 싱글 스레드란, 하나의 프로세스에서 한가지 작업을 실행하기 위해 순차적으로 실행되는 하나의 흐름이다. 다시말해, 동시에 하나의 코드만 실행할 수 있다는 뜻이
espania.tistory.com
https://espania.tistory.com/339
[javascript] 비동기 작업 / Call Back 함수란 무엇인가??
비동기 작업의 문제 해결 특정 로직의 실행이 끝날 때까지 기다리지 않고, 나머지 코드를 먼저 실행하는 비동기 처리는 서버에게 데이터를 요청했을 때, 서버에서의 응답 데이터를 언제 받을지
espania.tistory.com
728x90
'JavaScript' 카테고리의 다른 글
| [javascript] 비동기 작업 / 콜백 지옥(CallBackHell) (0) | 2022.02.26 |
|---|---|
| [javascript] 비동기 작업 / Call Back 함수란 무엇인가?? (0) | 2022.02.24 |
| [javascript] 자바스크립트 엔진 안에 Memory Heap 과 Call Stack (0) | 2022.02.24 |
| [javascript] 자바스크립트 엔진?? V8은 무엇일까?? (0) | 2022.02.23 |
| [javascript] 싱글 스레드 작업 수행 방식이 어떻게 될까요?? (0) | 2022.02.23 |
댓글