[ javascript ] promise > javascript&jQuery

본문 바로가기
사이트 내 전체검색

javascript&jQuery

[ javascript ] promise

페이지 정보

작성자 웹지기 댓글 0건 조회 588회 작성일 21-02-21 01:42

본문

'use strict'


//promse 코드를 이용해서 비동기식으로 처리 하는 방법

//Promse is a JavaScript object for asynchronous operation.

//state : pending(진행중) -> fulfilled(성공적으로 종료) or rejected(파일을 찾을 수 없거나 문제가 생기면)

//Producer(원하는 기능을 수행해서 해당데이터를 만듬) vs Consumer(해당 데이터를 소비)


//1. Producer

//promise가 만들어지는 순간 네트워크 통신을 수행하게 된다.

//버튼을 눌러서 네트워크를 연결해야 할 경우는 사용하지 않는게 좋다.

//when new Promise is created, the executor runs automatically.

//promise 변수를 Promise Object 로 만들자

const promise = new Promise((resolve, reject) => {

   //doing some heavy work(network, read files) 비동기처리가 유리

   console.log('doing something...');

   setTimeout(()=>{

        //resolve('test'); //성공했을 때 나타내는 핸들링

        reject(new Error('no network')) //오류를 나타내는 핸들링

   }, 2000);

});


//2. Consumers : then, catch, finally

//아래 .then은 promise가 리턴이되고 자신을 호출하는것과 같아서

//그래서 다시 promise에 .catch를 등록할 수가 있게 된다.

//※※※※※※※※※이것을 체이닝이라고 한다.  굉장히 중요함.

promise

    .then((value)=>{ //성공적인 부분

        console.log(value);

    })

    .catch(error=>{ //오류가 발생하는 부분을 console.log로 출력

        console.log(error);

    })

    .finally(()=>{ //성공과 실패에 상관없이 무조건 실행하고 싶을 때

        console.log('finally');

    });


//3. Promise chaining

const fetchNumber = new Promise((resolve, reject) => {

    setTimeout(()=>resolve(1), 1000);

});


fetchNumber

    .then(num => num*2)

    .then(num => num*3)

    .then(num => {

        return new Promise((resolve, reject) => {

            setTimeout(() => resolve(num-1), 1000);

        });

    })

    .then(num => console.log(num));


//4. Error Handling

const getHen = () => 

    new Promise((resolve, reject) => {

        setTimeout(() => resolve('Chicken'), 1000);

    });


const getEgg = hen => 

    new Promise((resolve, reject) => {

        //오류처리구문

        setTimeout(() => reject(new Error(`${hen} => Egg `)), 1000);

        //정상구문

        //setTimeout(() => resolve(`${hen} => Egg `), 1000);

    });


const cook = egg => 

    new Promise((resolve, reject) => {

        setTimeout(() => resolve(`${egg}=> Fry`), 1000);

    });


getHen()

    .then(hen => getEgg(hen))

    .then(egg => cook(egg))

    .then(meal => console.log(meal));


//콜백함수를 전달할 때 받아오는 value를 하나로 호출한 경우는 생략이 가능하다.

//.then(han=> getEgg(hen))   ==> .then(getEgg)

//.then(egg =>cook(egg)) ==> .then(cook)

//.then(meal => console.log(meal)) ==> .then(console.log)

//즉 getHen().then(getEgg).then(cook).then(console.log); 

//이렇게 사용이 가능하다

//프리티어 포멧에서 한줄로 작성

getHen()

    .then(getEgg)

    //오류처리구문이 존재할 때 대체구문으로 진행을 마무하게 해주는 catch문

    .catch(error => {

        return 'bread';

    })

    .then(cook)

    .then(console.log)

    .catch(console.log); //오류처리

추천0 비추천0

댓글목록

등록된 댓글이 없습니다.

Total 62건 1 페이지
  • 62 [ javascript ] promise 를 async & await 로 쉽게 써보자
  • promise 를 async & await 로 쉽게 써보자 //promise는 chaning가 가능하다. //체인이 많아 지면 복잡해진다. //async await 동기식으로 순서를 작성하는 것 처럼 간편하게 작성가능 //기존에 존재하는 promise 위에 간단한 api를 제공하는데 //더 간편하게 제공하는 것을 syntactic sugar //프로토 타입을 베이스트로한 살짝 덭붙여진 것 //async & await //clear style of ...
  • 웹지기 02-27 736 0 0 댓글 0
  • 열람중 [ javascript ] promise
  • 'use strict' //promse 코드를 이용해서 비동기식으로 처리 하는 방법 //Promse is a JavaScript object for asynchronous operation. //state : pending(진행중) -> fulfilled(성공적으로 종료) or rejected(파일을 찾을 수 없거나 문제가 생기면) //Producer(원하는 기능을 수행해서 해당데이터를 만듬) vs Consumer(해당 데이터를 소비) //1. Producer //...
  • 웹지기 02-21 589 0 0 댓글 0
  • 59 [ javascript ] 콜백지옥 - callback
  • 'use strict' //JavaScript is synchronous. //Execute the code block by orger after hoisting. //hoisting: var, function declearation //1. 동기와 비동기 console.log('1'); //동기식 setTimeout(function(){ //비동기식 console.log('2');//브라우져에서 함수에 의해 대기했다가 실행(비동기 실행방법) },1000); // 여기서 f...
  • 웹지기 02-21 609 0 0 댓글 0
  • 58 [ javascript ] json 사용법
  • JSON //simplest data interchange format. //lightweight text-abased structure. //easy to read. //key-value pairs. //used for serialization and transmission of data between the network the network the network connection. //independent programming language and platform. //J...
  • 웹지기 02-21 558 0 0 댓글 0
  • 57 [ javascript ] 유용한 함수들 10가지
  • javascript 유용한 함수들 10가지 https://youtu.be/3CUjtKJ7PJg // Q1. make a string out of an array { const fruits = ['apple', 'banana', 'orange']; const result = fruits.join(); console.log(result); } // Q2. make an array out of a string { ...
  • 웹지기 02-15 572 0 0 댓글 0
  • 55 [ javascript ] object 생성, 사용방법
  • 'use strict'; 객체(Objects) //one of the JavaScript's data types. //a collection of related data and/or functionality. //Nearly all objects in JavaScript are instances of Objets. //object = { key : value }; //오브젝트는 키와벨류의 집합체 //변수에 접근가능한 property 와 값의 집합 1. 변수에 넣은 변하지 않는 데...
  • 웹지기 02-14 310 0 0 댓글 0
  • 54 [ javascript ] 클래스 정의 및 사용
  • 객체지향 프로그래밍(Object-oriendted programming) class: template object: instance of a class JavaScript classes - introduced in ES6 - syntactical sugar over prototype-based inheritance js파일 상단에 선언(오류체크) 'use strict'; 1. 클래스선언(Class declarations) class Person {...
  • 웹지기 02-11 274 0 0 댓글 0
  • 53 [ javascript ] 함수의 또다른 기능
  • 함수의 또다른 기능 함수는 다른 변수처럼 사용된다. 변수에 값으로 할당 할 수 있다. 다른 함수에 인수로 전달 가능 다른 함수에 의해 반환될 수 있다. First-class function functions are treated like any other variable can be assigned as a value to variable can be passed as an argument to other functions. can be returned by another func...
  • 웹지기 02-11 264 0 0 댓글 0
  • 52 [ javascript ] 함수 선언 , 사용법
  • 함수(Function) 프로그램을 구성하는 빌딩블럭 서브프로그램이라고도 불리며 여러번 재사용이 가능 한가지의 작업이나 값을 계산할 때 사용 -fundamental building block in the program -subprogram can be used multiple times -performs a task or calculates a value 1. 함수 정의(Function declaration) function 함수명(파라미터1, 파라미터2) {비지니스로직.......
  • 웹지기 02-11 267 0 0 댓글 0
  • 50 [ javascript ] 자바스크립트 변수 선언( var, let, const 차이)
  • ※ 자바스크립트 변수 선언 - 변수(Variables)는 변하는 데이터(값)를 저장할 수 있는 메모리 공간. - 변수에 데이터 값은 한개만 저장되므로, 같은 변수를 두번 사용하게 되면 나중에 입력된 변수값으로 저장된다. - 변수의 첫글자에 사용할 수 있는 문자들은 $, _ (언더바), 영문자 만 사용가능 - 변수 선언시 'use strict'; 선언을 통해 오류를 보여주고 방지하자. 변수선언( var = function-scoped ) var 변수명; var 변수...
  • 웹지기 02-09 269 0 0 댓글 0
  • 49 [ javascript ] 자바스크립트 코드 작성시 주의 사항
  • javascript 는 대문자와 소문자를 구분한다. 코드가 끝났으면 ; 을 통해서 라인이 끝났다고 표시를 해준다. 가독성을 위해 코드는 한줄씩 사용하는게 좋다. 문자형 데이터를 작성할 때는 " 와 ' 를 사용해서 한다. 중복될 때는 \를 사용해서 사용한다. 문자 사잉에 "와 " 겹치지 않게 사용해줘야 한다. document.write("동해물과 " 백수산이 " 마르고 닳도록 "); //오류구문 docume...
  • 웹지기 02-09 222 0 0 댓글 0
  • 48 [ javascript ] 자바스크립트 선언문( 내부 선언, 외부 선언 )
  • ※ 자바스크립트 선언문 1) 내부스크립트로 작성법 - 선언문은 자바스크립트 코드를 작성할 영역을 선언하는 것 - 태그 선언문의 시작과 종료의 사이에 코드를 적는다. 예) <script> -- 코드 작성 -- </script> - 태그 선언은 <head><script></script></head> 또는 &lt...
  • 웹지기 02-09 260 0 0 댓글 0
게시물 검색

회원로그인

접속자집계

오늘
2,055
어제
3,367
최대
24,117
전체
2,802,484

그누보드5
Copyright © funyphp.com. All rights reserved.