작업이 순차적으로 이루어지며 앞선 작업이나 요청이 완료되지 않은 경우 뒤의 작업은 대기하며 작업중단이 발생한다.
선행 작업이 완료됨과 상관없이 다음 작업이 실행된다.
완료순서가 보장되지 않으며 작업중단이 발생하지 않는다.
Javascript는 싱글스레드 기반의 동기적 언어로 한번에 하나의 작업만 수행이 가능하지만, 비동기 작업이 가능하게 하는 요소들이 있다.
Ajax, Axios, Fetch 같은 Web API 요청과 setTimeout 같은 작업 예약이 대표적이다.
ECMAScript8 부터 추가된 Javascript의 비동기 처리 방식으로, Async/Await를 사용하면 비동기 코드를 동기처럼 작성 할 수 있다.
Async/Await는 비동기처리의 callback과 promise then의 과도한 사용에서 벗어난다.