[JavaScript] 프로미스와 프로미스 API구조

2021. 10. 19. 23:01·💻 개발/언어
728x90
반응형
강의를 보다가 프로미스, .then 사용에대한 설명이 없어서 공부할 겸 적는 포스팅

 

 

프로미스란?

프로미스는 자바스크립트 비동기 처리에 사용되는 객체 

 

비동기 처리란?

특정 코드의 실행이 완료될 때까지 기다리지 않고 다음 코드를 먼저 수행함

 

프로미스가 필요한 이유?

서버에서 받아온 데이터를 화면에 표시할 때 사용한다.

내가 인턴생활 할 때 한글과 번역문을 가지고 엑셀 만드는 일을 했는데 

파파고API를 사용하여 문장 번역 스크립트를 짰는데 3000문장 당 15분 정도 걸렸다.

이때 프로미스 개념을 적용하자면 

프로미스를 사용하지 않았다면, 번역되는 15분을 기다리지 않고 바로 엑셀을 생성했을 것이다 

그러면 한글과 빈 번역문의 엑셀파일이 생성 되었을 것이다.

이와 같은 문제점을 해결하기 위해 나온 것이 프로미스 

 

프로미스의 3가지 처리과정

  • 대기: 비동기 처리 로직이 완료되지 않은 상태
  • 이행: 비동기 처리가 완료되어 프로미스가 결과 값을 반환해준 상태
  • 실패: 비동기 처리 실패 or 오류 발생 상태

대기 

new Promise();

new Promise() 메서드를 호출하면 대기 상태가 된다.

new Promise() 메서드를 호출할 때 콜백 함수를 선언할 수 있고, 콜백 함수의 인자는 resolve, reject다.

new Promise(function(resolve, reject){

});

이행

new Promise(function(resolve, reject){
	resolve();
    });

resolve를 실행하면 이행 상태가 된다.

이행상태가 되면 .then()을 이용하여 아래와 같이 처리 결과 값을 받을 수 있다.

 

function getPapago(){
	return new Promise(function(resolve, reject){
    const en = 3000;
    resolve(en)
     });
    }
    
//resolve 결과값 en을 resolvedEn으로 받음
getPapago().then(function(resolvedEn){
	console.log(resolvedEn); //3000
});

=> 3000

 

적용

현재 만들고 있는 유튜브 로직에서 .then부분에 대한 console.log하여 불러온 데이터값

console.log 결과

 

 

지금은 개념을 이해하고 감을 잡는데 집중하고 

추후에 프로미스를 사용하여 로그인 로직을 만든다거나 할 때 https://joshua1988.github.io/web-development/javascript/promise-for-beginners/

 

자바스크립트 Promise 쉽게 이해하기

(중급) 자바스크립트 입문자를 위한 Promise 설명. 쉽게 알아보는 자바스크립트 Promise 개념, 사용법, 예제 코드. 예제로 알아보는 then(), catch() 활용법

joshua1988.github.io

를 참고해야겠다. 

 

* 프로미스관련 참고 캡틴판교님 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'💻 개발 > 언어' 카테고리의 다른 글

[JAVA] 헷갈렸던거 정리(static, 생성자, 기본생성자, 초기화)  (2) 2022.09.09
[JAVA](모든 시도 해봄) / java.lang.ClassNotFoundException 오류 해결  (4) 2022.03.12
[Python] 중복단어 삭제하기(연속적으로 나오는 경우/ 전체 단어 중 삭제)  (0) 2021.09.03
[Python] 전체 글 목록에서 헤더 푸터 자르기 / pdftotex, 함수 만들기  (0) 2021.07.18
[Python] 어절수 조건에 일치하는 경우만 출력하기  (0) 2021.06.30
'💻 개발/언어' 카테고리의 다른 글
  • [JAVA] 헷갈렸던거 정리(static, 생성자, 기본생성자, 초기화)
  • [JAVA](모든 시도 해봄) / java.lang.ClassNotFoundException 오류 해결
  • [Python] 중복단어 삭제하기(연속적으로 나오는 경우/ 전체 단어 중 삭제)
  • [Python] 전체 글 목록에서 헤더 푸터 자르기 / pdftotex, 함수 만들기
foodev
foodev
이것저것 개발과 이것저것 리뷰 합니다.
    250x250
  • foodev
    개발 개맛집
    foodev
  • 전체
    오늘
    어제
    • 분류 전체보기 (110)
      • 🌟🙇🏻‍♂️ 꼭 읽어봤으면 하는 글 (4)
      • 💻 개발 (72)
        • 설정 및 세팅 (4)
        • DB&서버&네트워크&암호 (11)
        • React (0)
        • JPA, Querydsl (13)
        • 알고리즘 (7)
        • 언어 (15)
        • 프레임워크 (12)
        • HTML, CSS (10)
      • ✍🏻 (33)
        • 회고록 (15)
        • 독서록 (7)
        • 일지록 (10)
        • 세미나 (1)
      • 💡 리뷰 (1)
        • 제품리뷰 (1)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
foodev
[JavaScript] 프로미스와 프로미스 API구조
상단으로

티스토리툴바