[JS] 비동기 키워드 async/ await

조시현·2022년 3월 18일
0

JavaScript

목록 보기
3/3

동기 통신/ 비동기 통신

동기 통신

클럭이라는 신호를 계속 주기적으로 보내고 , 클럭과 클럭사이에 사용자가 정해놓은 수만큼의 문자열을 한 블록으로 하여 전송한다. A와 B사이에는 지속적으로 클럭신호가 오가고 있으며, 데이터의 전송이 없더라도 클럭 신호는 계속 주고 받는다.

비동기 통신

평상시에 클럭 신호를 보내지 않는다. 대신 보낼 데이터가 있을때 start bit를 보낸 후 데이터를 보내고 stop bit를 보낸다.

동기 통신비동기 통신
가격고가저가
회로복잡도복잡단순
클럭OX
데이터전송 단위BlockString

async/ await

async

함수 앞에 async 키워드를 추가하면 비동기 함수를 만들 수 있다.
async 함수는 await 키워드가 비동기 코드를 호출할 수 있게 해주는 함수이다.

let hello = async () => { return "Hello" };
async 키워드를 추가한 함수는 Promise 반환합니다.

실제로는 fulfil Promise(약속을 이행하다라는 뜻)가 반환되기 때문에 반환된 값을 사용하기 위해서는 .then()블럭을 사용해야합니다.

hello().then(console.log)

await

promise가 fulfil될 때까지 잠시 중단하고 결과를 반환해준다.
그리고 실행을 기다리는 다른 코드들을 중지 시키지 않고 그대로 실행하게 됩니다.

await는 async function 안에서만 사용할 수 있다.

=> await 키워드는 JavaScript 런타임이 이 라인에서 비동기 코드를 일시 중지하여 비동기 함수 호출이 결과를 반환할 때 까지 기다리게 합니다.


fetch() - 어디서 본거 같은데 분명히..
throw new Error() - 자바 에러처리할때 본거 같은데

둘다 기억이 잘 안나니까 다음에 한번 정리를 해봐야겠다.


참고:
https://developer.mozilla.org/ko/docs/conflicting/Learn/JavaScript/Asynchronous/Promises#the_basics_of_asyncawait

https://m.blog.naver.com/conquer6022/221566232231

profile
노력하는 개발자

0개의 댓글