최대 1 분 소요

JS의 비동기 키워드(async, await, promise)

작업을 ‘비동기’적으로 처리한다는 것은
‘동시에’ 처리하되 ‘그 순서를 보장하지 않는다’는 말이다
그로 인하여, 특정한 작업이 끝날때까지 ‘대기’하는 중
프로그램이 멈추지 않고 다른 작업을 처리하도록 만들 수 있다
(효율적이나 ‘예측’ 하기 어려워짐)

promise는 js의 ‘비동기’ 처리를 위한 일종의 객체로서
작업의 ‘성공’과 ‘실패’ 시 처리를 각각
resolve 와 reject 함수로 나타낼 수 있다
이를 보통 then 과 catch를 통해 promise 객체를
상황에 맞게 분류시킬 수 있음

이러한 promise 를 쉽게 사용하기 위하여
async 키워드를 사용한다
(async는 정확히는 new promise(…) 를 보기 쉽게 바꾸어준다)

async 키워드는 ‘비동기’ 함수를 명시적으로 표기하며
반드시 promise를 반환한다

await 키워드는 async 가 지정된 비동기 함수 내에서만 사용이 가능하다
await는 내부적으로 ‘기다리는’ 역할을 해주며,
이는 일반적인 promise에서 .then().then()… 이 계속 붙어
코드를 보기 어렵게 하는 문제를 예방할 수 있다

개인적으로는 아직 JS의 문법을 완벽하게 숙지하지 못하였으며
이러한 비동기적 상황이 발생하는 경우,
추가적으로 조사를 할 것 같다
[참고 : https://springfall.cc/article/2022-11/easy-promise-async-await]

댓글남기기