프로미스(Promise)와 'async/await'는 자바스크립트에서 비동기 작업을 처리하기 위한 두 가지 방법이다.
프로미스는 비동기 작업의 결과를 나타내는 객체이다. 세 가지 상태(Fulfilled, rejected, pending) 상태를 가지고 있으며, 이러한 상태 변화에 따라 콜백 함수들이 실행된다.
'.then()'과 '.catch()'메서드를 사용하여 Promise의 결과나 에러를 처리할 수 있다.
프로미스는 체이닝(Chaining)을 통해 비동기 작업의 연속적인 처리를 구현할 수 있다. '.then()' 메서드를 사용하여 다음 작업을 연결하고, '.catch()' 메서드를 사용하여 오류를 처리할 수 있다
비동기 작업이 완료되면 프로미스는 이행(Fulfilled)상태가 되고, 성공적인 결과가 전달된다. 에러가 발생하면 거부(Rejected) 상태가 되고, 오류 정보가 전달된다.
'async' 키워드는 비동기 함수를 선언하는 데 사용된다. 비동기 함수는 항상 프로미스를 반환한다
'await' 키워드는 비동기 함수 내에서 사용되며, 프로미스가 처리될 때까지 해당 위치에서 코드의 실행을 일시 정지한다. 이를 통해 비동기 코드를 동기적으로 작성할 수 있다.
'await'는 프로미스가 이행될 때까지 기다리고, 프로미스가 이행되면 결과를 반환한다. 만약 프로미스가 거부될 경우 'try/catch' 문을 사용하여 에러를 처리할 수 있다
'async/await'를 사용하면 비동기 코드를 순차적이고 동기적으로 작성할 수 있어 가독성이 좋아진다. 중첩된 콜백 함수 대신에 비동기 작업을 직렬화하는 것과 유사한 구문으로 코드를 작성할 수 있다.
Promise는 비동기 작업의 결과를 처리하기 위한 객체이고, '.then()'과 '.catch()'를 사용하여 처리한다. 'async/await'는 프로미스를 기반으로 한 문법적인 편의 기능으로, 'async' 함수 내에서 'await'를 사용하여 비동기 작업의 결과를 처리한다. 'async/await'를 사용하면 비동기 코드를 동기적으로 작성할 수 있어 가독성이 좋아진다.