[JS]프로미스 체이닝/네트워크

Kim-yujin·2022년 10월 13일
0

JavaScript

목록 보기
9/10
post-thumbnail
프라미스 복습
  • 비동기 작업(시간이 걸리는)을 처리하기 위해 사용
  • 비동기 작업을 쉽고 효율적으로 사용할 수 있다.
  • 무조건 비동기 작업 시 프라미스를 사용하는 것은 아님
  • 콜백 함수보다 프라미스를 더 많이 사용하는 이유 ?
    (콜백함수를 많이 사용하면 즉, 비동기작업을 여러 개할 시에 콜백 함수를 사용하면 가독성이 안 좋아지므로 프라미스를 사용한다 )

프로미스 체이닝

비동기 작업 처리를 묶어서 사용

promise 객체를 만들었다고 해도 then 등으로 받아주지 않으면 의미없이 끝나버리는 것

코드를 더 효율적으로 작성하기 위해 사용


Fetch

네트워크 요청을 보내주는 함수이다.

  • 네트워크 기반으로 동작한다.
    (1) 네트워크 요청을 보낸 후 받은 결과 값이 프로미스 객체 기반으로 보내준다. (then으로 받음)
    (2) 비동기적 작업을 하는 함수들
    프로미스 객체를 받은 then에서 리턴을 받으면 무조건 프로미스 객체를 리턴한다.

프로미스 객체

프로미스 객체(fetch에서 전달)를 첫번째로 받은 응답은 헤더 영역까지만 받는다.
responset.text();로 두 번째로 받는 응답은 바디까지 받는다.
texts는 바디의 내용이 들어있다.

fetch('/article/promise-chaining/user.json')
	//원격 서버가 응답하면 then 핸들러가 실행됨
	.then(function(response){
    	//response.text()는 응답 텍스트 전체가 다운로드되면 결과
        //값(응답텍스트)를 resolve함수로 전달하는 이행 프라미스
        //객체를 생성 후 반환
        return response.text();
        })
        .then(function(text){
        	//원격에서 받아온 파일의 내용
            alert(text); //{"name":"iliakean","isAdmin":true}
         });

json

바디 영역까지 받은 내용을 json으로 만들어 놓은 객체를 반환해줌

profile
🐰노력하며 살아가기🐰

0개의 댓글