자바스크립트는 동기적인 아이임
호이스팅은 var선언과 함수선언이
제일 위로 끌어올려지는거
promise는 자바스크립트에서 비동기를
간편하게 처리할수있게하는 오브젝트임
상태 : pending(프로미스가 우리가 지정한 기능을 수행중일때 팬딩 상태)
->이 기능(오퍼레이션)이 잘수행되면 fulfilled 상태가 됨 or 실패하면 reject됨
fulfilled면 resolve()실행 reject()면 reject()실행
producer(즉 프로미스오브젝트)vsconsumer
결국 비동기 함수를 만들어서 사용해야할 때 프로미스 객체를 리턴하게 만들어서 사용하면
콜백중첩을 방지할 수 있고
에러처리 수월하게 할수있다
프로미스 실행할때는 .then해서 실행
아니면 .catch
비동기 함수 중간에 에러가 난다면 promise.catch()
비동기 메서드가 프로미스 객체를 리턴하면서 계속해서 then.catch하는식
체이닝 가능
프로미스 생성방법 new Promise((resolve, reject){...})로 생성
//프로미스 생성
const promise1 = function(param){
return new Promise(function(resolve,reject){
if(param){
resolve("바보");
}
else{
reject("아닌데");
}
});
}
//프로미스 실행
promise1(true).then(function(result){
console.log(result);//바보
},function(err){
console.log(err);//아닌데