Save my data

[Javascript] Promise? 본문

개인공부

[Javascript] Promise?

양을 좋아하는 문씨 2023. 10. 16. 01:39
  1. 자바스크립트는 비동기 처리를 위해 콜백 함수를 사용한다.
    • 남발하게 되면 콜백 지옥에 빠지게 된다.
    • 프로미스를 사용함으로써 다음과 같이 복잡성을 해소할 수 있다.
      1. 비동기 처리 시점을 명확하게 표현할 수 있다.
      2. 연속된 비동기 처리 작업을 수정, 삭제, 추가하기 편하고 유연하다.
      3. 비동기 작업 상태를 쉽게 확인할 수 있다.
      4. 코드의 유지 보수성이 증가한다.
  2. Promise는 어떤 작업의 결과값이 아니다.
    • 하지만 결과값 처럼 취급할 수 있다.
      • 말 그대로 결과값을 보장하겠다는 약속이다.
    • 비동기 결과로 만들어지는 Promise 변수 그 자체는 비동기 코드 호출과 동시에 받을 수 있다.
      • Promise를 받는 코드는 동기적인 코드이다.
    • 실제로 우리가 받을 것이라고 예상하고 있는 값은 실제로는 받지 못한 상태이지만, 그 값을 받겠다는 Promise 객체를 가지고 마치 받은 것 처럼 쓰면 된다.
      • 마지막 단계에 값을 잘 처리해서 쓰면 된다.
  3. Promise method chaining
    fetch('http://example.com/api')
        .then((response) => {
        	return response.json();
        }).then((data) => {
        	console.log("fulfilled");
        	console.log(data);
        }).catch((error) => {
        	console.log("rejected");
            console.log(error);
    	});
    • fetch 함수는 결과로 Promise 객체를 반환한다.
    • 위와 같이 Promise 콜백 함수에서 반환된 값은 다음으로 연결된 콜백 함수의 인자값이 된다.
    • Promise 메서드 안쪽 콜백의 실행결과에 따라 Promise는 둘 중 하나의 상태로 귀결된다.
      • fulfilled: 비동기 처리가 성공적으로 진행되었다는 뜻이다.
      • rejected: 비동기 처리가 실패했다는 뜻이다.

참조: https://velog.io/@vraimentres/promise-1

 

Promise 잘 사용하기 (1) 기초개념

현실세계로 비유하자면, Promise는 바우처와 비슷한 개념이다.재화를 구매했지만 지금 당장은 바우처만 받았고 아직은 내 손에 재화가 없는 상태가 비동기이다. 하지만 재화 대신 받아서 가지고

velog.io

부분 참조: https://yoo11052.tistory.com/155

 

[JavaScript] 프로미스(Promise)란

프로미스(Promise) 자바스크립트는 비동기 처리를 위해 콜백함수를 사용합니다. 하지만 콜백을 너무 남용하게 되면 우리가 흔히 부르는 콜백 지옥에 빠질 수가 있습니다. 또한 에러처리도 힘들 뿐

yoo11052.tistory.com

Comments