아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
엉뚱한큰고니146
엉뚱한큰고니14621.03.24

자바스크립스에서 async와 await

제목 : 자바스크립트에서 async와 await

자바스크립트에서 async와 await은 어떨 때 사용 하는 건가요?

비동기 처리 방식인 콜백 함수와 프로미스와는 어떻게 다른건가요?

현업에서도 자주 사용되나요?

자바스크립트에서 콜백펑션 지옥을 피할수있는 방법은 뭐가있나요?

55글자 더 채워주세요.
답변의 개수
3개의 답변이 있어요!
  • 탈퇴한 사용자
    탈퇴한 사용자21.03.26

    어싱크어웨이트 말씀하신대로 비동기를 처리할때 사용하고.많이 사용됩니다.

    여기서중요한것은 리턴방식이 프로미스 여야한다는점.

    주로 서버와.통신할때 많이사용됩니다

    Axios같은 통신라이브러리 사용할때!

    콜백지옥이 일어나지않게하기위해

    어싱크어웨이트긴 나온것이구요!

    이상입니다.


  • 안녕하세요. 아하(a-ha) 프로그래밍 지식 답변자 입니다.

    async, await은 자바스크립트 비동기 처리 패턴 중 가장 최근에 나온 문법으로, 기존 방식인 콜백과 프로미스의 단점을 보완하고 읽기 좋은 코드를 작성할 수 있게 도와줍니다. 질문자님이 마지막에 질문 주신 콜백펑션 지옥을 피하기 위해 만든 기능이죠.

    자세한 내용은 Mozilla MDN 문서를 참조 부탁 드립니다.

    https://developer.mozilla.org/ko/docs/Learn/JavaScript/Asynchronous/Concepts

    답변이 도움이 됐으면 좋겠습니다. 좋은 하루 되세요!


  • 자바스크립트 자체가 원쓰레드 언어입니다.

    그냥 위에서 아래로 쭈욱 읽는다고 보면 됩니다.

    (실제로는 밑에서 위로 읽겠지만)

    쭈욱 읽고 있는데 처리과정이 오래 걸리면 못 읽고 읽겠죠? 그래서인지 몰라도

    비동기입니다. 일단 중간에 시간이 오래 걸리는게 있어도 아래 것들 먼저 읽어서 실행해버리겠다 이겁니다.

    (여기까지는 자바스크립트 기본 특성입니다. 웃자고 한겁니다.)

    요즘은 컴퓨터 사양이 좋아져서 그러지, 저 어렸을 때는 같은 결과가 나오는 프로그램 이더라도

    실행속도에 따라서 좋고 나쁘고를 판단 했습니다. 지금은 그냥 대충 짜도 다 빨라요.

    그러다보니 차례대로 로직짜고 출력해야지 하고 실행하면 컴퓨터 환경마다 결과값이 다를 경우가 있습니다.

    어떤건 정상적인데, 어떤건 계산이 안 되고 결과가 나오네요?

    이유는, 비동기 방식 때문입니다. 결과값을 아직 못받았는데, 결과값을 화면에 뿌려버리니 말이죠.

    그래서 기존에 콜백함수를 썼습니다. 이게 뭐라고 생각하면 쉽냐면 특정 시간걸리는 것을 함수로 묶어버리고

    이게 끝나면 그때 출력을 하겠다고 하는거죠

    근데 시간이 걸리는 함수가 5개가 있다고 칩시다. 3개는 겁나 빠른데 2개는 좀 시간이 걸려요

    근데 나는 이 결과값들을 합해서 출력을 해야 해요

    어떻게 하지.. 응? 그래서 프로미스가 있는겁니다. 단어만 보면 약속인데.. 아무튼 5개 다 되면 그때 콜백으로 결과값 출력!

    (이게 동기입니다. 다 되면 그때 실행)

    여기까지는 아실꺼고..

    async와 await도 같은 거라고 보시면 됩니다. 프로미스 기반이에요.

    제가 아직 개발 연차가 적고 이론적인 부분이 약해서 이 이상은 잘 모르겠습니다.

    단순히 생각하면.. 내가 쓴 코드를 다른 사람들이 보기에 좀 더 이해하기 쉽게 하는 정도..?
    ES 몇쓰느냐에 따라서 다르고, 회사내에서 어떤걸 표준으로 잡고, 어떤걸 쓰라고 하는지에 따라서도 다르겠지만

    기본은 프로미스 기반이라고 보면 되요