Promise

    [Javascript] async & await 비동기처리

    Async & Await ES7에 추가된 비동기처리를 위한 문법입니다. await은 영어그대로 비동기함수가 처리될때까지 기다리게 됩니다. 하지만 실제론 기다리는며 CPU를 낭비하는것이 아닌 다른일을 처리하게됩니다. Async async는 함수 앞에 위치하게 됩니다. 익명함수를 사용하는 경우 () 앞에 위치하게 됩니다. async fucntion a(){ } const a = async()=>{ } async를 붙이면 해당 함수는 항상 프라미스를 반환합니다. 프라미스가 아닌 값을 반환하더라도 이행 상태의 프라미스(resolved promise)로 값을 감싸 이행된 프라미스가 반환되도록 합니다 클래스의 메서드에도 당연히 사용이 가능합니다. ** async가 붙은 함수는 반드시 프라미스를 반환하고, 프라미스가..

    [JavaScript] Promise & async / await 자바스크립트 비동기처리

    [JavaScript] Promise & async / await 자바스크립트 비동기처리

    프로미스란? 자바스크립트는 ES6 이전에 비동기 처리를 위한 하나의 패턴으로 콜백 함수를 사용한다. ES6에 전통적인 콜백 패턴이 가진 단점을 보완하며 비동기 처리 시점을 명확하게 표현할 수 있는 새로운 패턴이 프로미스이다. 콜백패턴의 단점 콜백헬(코드가독성 저하) 기본적으로 비동기함수의 리턴값을 사용하여 다음함수를 실행시키기위해선 아래와 같은 콜백함수를 사용하여 후처리를 한다. 지속적으로 비동기함수의 리턴값을 사용하게 되면 아래와 같은 콜백헬이 발생하게 된다. 예외처리의 한계 위와 같은 코드에서는 예외가 잡히지 않는다고 한다. 그이유로는 자바스크립트의 이벤트루프와 이어지는데 1.비동기함수가 스택에 쌓이고 나오면서 외부 API에서 함수처리 2.외부 API에서 함수를 태스크큐에 넣은 후 스택이 비워진후 스..