• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 JavaScript, TS 게시판 ECMA6 강좌 Promise 질문입니다.

ECMA6 강좌 Promise 질문입니다.

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 글쓴이
  • #28643

    김태헌
    참가자

    Promise 예제 첫 번째 녀석을 하는 중입니다.

    로드를 확인할 이미지를 선택해서 Promise를 실행하고 싶어, Promise에 값을 전달하게 함수 형태로 제작을 해보았는데

    addEventListner가 작동을 하지 않네요...

     

    총 두 가지 형태로 제작했는데 제가 보기에는 두 형태 모두 문제는 없어 보이는데 뭐가 문제일까요?

    ===============================================================================

    //promise 형태 두가지

    const imgPromise = (targetImg)=>{
        return new Promise((resolve,reject)=>{
            targetImg.addEventListener('load',function(){
                console.log(resolve in);
                resolve('0000');
            });
            targetImg.addEventListener('error',function(){
                console.log(reject in);
                reject('9999');
            });
        })
    }

    const imgPromise2 =(targetImg)=>{
        targetImg.addEventListener("load", function(event){
            console.log(resolve in);
            return Promise.resolve('0000');
        })
        targetImg.addEventListener("error",function(event){
            console.log(reject in);
            return Promise.reject('9999');
        })
       
        return  Promise.resolve('8888');
    }

    ==================================================================

    //Promise 호출 시점 onload 또는 레디를 각각 테스트

    //윈도우 온로드 시점
    window.onload = function(){
        const targetImgName = 'test';

        const targetImg = document.getElementById(${targetImgName});
        //const targetImg = document.querySelector(#${targetImgName});
        //프로미스 생성.
        const loadPromise = imgPromise(targetImg);
        console.log(targetImg);

        //판별
        loadPromise
        .then(function(returnCode){
            console.log(Image Loading Success retrun code = ${returnCode});
        })
        .catch(function(returnCode){
            console.log(Image Loading Fail retrun code = ${returnCode});
        })
        .finally(function(){
            console.log(End........);
        })

    }

    //문서 레디시점
    document.addEventListener("DOMContentLoaded", function(){
        const targetImgName = 'test';

        const targetImg = document.getElementById(${targetImgName});
        //const targetImg = document.querySelector(#${targetImgName});
        console.log(targetImg);

        //프로미스 생성.
        const loadPromise = imgPromise2(targetImg);

        //판별
        loadPromise
        .then(function(returnCode){
            console.log(Image Loading Success retrun code = ${returnCode});
        })
        .catch(function(returnCode){
            console.log(Image Loading Fail retrun code = ${returnCode});
        })
        .finally(function(){
            console.log(End........);
        })
    });

    #28658

    김태헌
    참가자

    혹시 HTML 구성이 문제일까 해서 HTML도 올려봅니다.

    <!DOCTYPE html>
    <html lang="ko">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="styleesheet" href="./main.css">
        <title>Promise</title>
    </head>
    <body>
        <div id="imgDiv">
            < img id="test" src="./kona.jpg">
        </div>
        <script src="./promiseSubject.js"></script>
    </body>
    </html>

    #28693

    codingapple
    키 마스터

    아마도 자바스크립트파일 말고 html 파일안에 <script>태그열어서 쓰면 잘됩니다 

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠