Promise

column clash·2021년 8월 19일
0
post-custom-banner
   // promise 는 콜백함수를 쓰기 싫을때 쓴다.
      // var 프로미스 = new Promise(function (reolve, reject) {
      //   var 어려운 연산 = 1+1
      // });
      var 프로미스 = new Promise(function (성공, 실패) {
        setTimeout(function () {
          var 어려운연산 = 1 + 1;
          성공(어려운연산);
        }, 1000);
      });

      프로미스
        .then(function (결과) {
          console.log(결과);
        })
        .catch(function () {
          console.log("실패했어요.");
        });
      //프로미스가 성공일 경우 실행할 코드 (콜백함수)
      //옆으로 길어지지 않아서 굿.
      // 실패한 후 이렇게 해주세요. catch 기능 제공.
      //finally 제공 (성공이든, 실패든 이걸 해주세요.)
      //promise 는 성공실패 판정기계

      ///성공하면, resolved,
      //진행중 pending
      //실패하면 reject

      //동기를 비동기로 바꿔주는 게 아님
      // 그냥 스타일임.
      //promise 가 적용된 것.
      //$.ajax().done(function(){}).fall()
      // fetch() //프로미스를 항상 리턴함.
      //fetch().then(function(){}).catch()

      var 프로미스2 = new Promise(function (resolve, reject) {
        document.querySelector("#test").addEventListener("load", function () {
          resolve("성공");
        });
        document.querySelector("#test").addEventListener("error", function () {
          reject("실패");
        });
      });

      프로미스2.then(function (결과) {
        console.log(결과);
      });

      var 프로미스3 = new Promise(function (resolve, reject) {
        $.get("https://codingapple1.github.io/hello.txt").done(function (결과) {
          resolve(결과);
        });
      });

       프로미스3.then(function (결과) {
        console.log(결과);
      });
 프로미스3
        .then(function (결과) {
          console.log(결과);
          var 프로미스4 = new Promise(function (성공, 실패) {
            $.get("https://codingapple1.github.io/hello2.txt").done(function (
              결과
            ) {
              성공(결과);
            });
          });

          return 프로미스4;
        })
        .then(function (결과) {
          console.log(결과);
        });
profile
풀스택 개발 중...
post-custom-banner

0개의 댓글