function Example(){
console.log('Hello world');
}
setTimeout(Example, 3000);
console.log('대기');
결과는
대기
Hello world // 3초후에 뜨는것!
const p = Promise.resolve(1);
const p = new Promise((resolve, reject) => {
setTimeout(() => {
console.log('2초가 지났습니다.');
resolve('hello');
},2000);
});
Promise 생성자는 콜백을 인수로 받음.
콜백의 첫 번째 인수 resolve 함수는 콜백 안에서 resolve를 호출하면 resolve인수로 준 값이 곧 Promise객체의 결과값으로 처리됨 상태가 된다.
두번째 인수 reject함수는 비동기 작업에서 에러가 발생했을 때 호출하는 함수
Promise를 더 쉽게 사용할 수 있도록 해주는 문법
fetch("API 주소", {
method: "GET"
headers: {
"Content-Type": "application/json",
},
bodys: JSON.stringfy({
key: value,
})
})
.then(response => response.json())
.then(response => {
//data를 응답받은 후의 로직
});
첫 번째 파라미터는 API 주소, 두 번째 파라미터에는 request의 옵션
GET : 정보를 가져올 때 / POST : 어떠한 정보를 보낼 때, 생성할 때 / DELETE : 정보를 삭제할 때
headers : 메타정보
bodys : body에 담아서 보내고 싶은 내용들. body는 객체로 이루어져 있어야 하며 객체에서의 key값은 백엔드에서 요구하는 key값으로 정해서 보내줘야 한다. js 파일로 작업을 했기 때문에 JSON.stringfy()
방식을 사용해 해당 내용을 JSON으로 바꿔준다.
response.json()
은 받아온 데이터는 json 타입인데 자바스크립트에서 사용하기 위해 js 형식으로 바꿔주는 역할을 한다.
fetch기본 메소드 GET
fetch('http://api.google.com/user')
.then( res => res.json())
.then( res => {
if (res.success) {
console.log(`${res.user.name}`님 환영합니다);
}
});
메소드가 POST인 경우
fetch('http://api.google.com/user',{
method: 'post',
body: //전달할 내용
})
.then( res => res.json())
.then( res => {
if (res.success) {
console.log(`${res.user.name}`님 환영합니다);
}
});
현재 가장 많이 사용되고 있는 HTTP 클라이언트
HTTP요청을 Promise 기반으로 처리한다는 장점
axios.get('api url')
.then() //api를 받아온 이후 실행할 코드 작성
axios.post('api url', {
// 보낼 데이터를 객체형태로 작성
})
.then() // 이후 실행할 코드 작성