Promise

function firstPromise(){
    return new Promise((resolve,reject)=>{
        resolve("약속이 잘 실행되었어용");
        reject("이건 다 나때문이야");
    })
}
firstPromise()
       .then((result)=>{
        console.log("넘어온 값 : ", result);
       })
       .catch((error)=>{
        console.error("Failed Cause", error);
       })
       .finally(()=>{
        console.log("Anyway");
       })

Promise + AJAX

//나의 두 번째 Promise
function secondPromise(){
    return new Promise((resolve,reject)=>{
        var xhr = new XMLHttpRequest();
        xhr.open("get","../AJAX/data.json",true);
        xhr.onreadystatechange = ()=>{
            if(xhr.readyState == 4 && xhr.status == 200){
                //완료되었을때
                resolve(xhr.responseText); // resolve를 이용해서 성공을 알림
                
            }
        }
        xhr.send();
    })
}
secondPromise()
       .then((result)=>{
        console.log("넘어온 값 : ", result);
       })
       .catch((error)=>{
        console.error("Failed Cause", error);
       })
       .finally(()=>{
        console.log("Anyway");
       })

Promise로 axios 만들기

//axios 만들기
const c_disp = document.querySelector("#disp");
const axios = {}; // axios라는 유명한 비동기 라이브러리가 있음 (namespace용)
//메소드 get 추가
axios.get = (p_url) =>{
    return new Promise((resolve,reject)=>{
        var xhr = new XMLHttpRequest();
        xhr.open("get",p_url,true);
        xhr.onreadystatechange = ()=>{
            if(xhr.readyState == 4 && xhr.status == 200){
                //완료되었을때
                resolve(xhr.responseText); // resolve를 이용해서 성공을 알림
            }
        }
        xhr.send();
    })
}
//펑션호출로 ajax를 편하게 사용할 수 있다.
axios.get("../AJAX/data.json")
    .then((result)=>{
        c_disp.innerHTML = result;
    })

axios.get("../AJAX/data.csv")
    .then((result)=>{
        c_disp.innerHTML = result;
    })

axios.get("../AJAX/data.xml")
    .then((result)=>{
        c_disp.innerHTML = result;
    })

Async, Await

// 최종적으로 async ,await 키워드가 등장 (칭찬을 한 몸에 받음. 베리 굳 아이디어!)
const c_disp = document.querySelector("#disp");

const axios = {}; 
axios.get =(p_url) => {
    return new Promise((resolve,reject)=>{
        var xhr = new XMLHttpRequest();
        xhr.open("get",p_url,true);
        xhr.onreadystatechange = ()=>{
            if(xhr.readyState == 4 && xhr.status == 200){
                resolve(xhr.responseText); 
            }
        }
        xhr.send();
    })
}

//async , await는 세트당, Promise와 관련  엄칭나게 중요, 이미 외국에선 엄청나게 사용되고 있음
async function myfunc(){
     let rslt = await axios.get("../AJAX/data.html");
     console.log(rslt);
}

myfunc(); // 이제 한번 불러 봅시당 // 뒤에
console.log("누가 누가 빠른가?"); // 먼저