- 프라미스 만들기
-
const getFakeMembers = count => new Promise((resolves, rejects) => {
const api = `https://api.randomuser.me/?nat=US&results=${count}`
const request = new XMLHttpRequest()
request.open('GET', api)
request.onload = () =>
(request.status === 200)
? resolves(JSON.parse(request.response).results)
: rejects(Error(request.statusText))
request.onerror = (err) => rejects(err)
request.send()
})
/*
getFakeMembers(5).
then(
members => console.log(members),
err => console.error(
new Error("cannot load members from randomuser.me"));
*/
getFakeMembers(5)
.then(members => console.log(members))
.catch(err => console.error(
new Error("cannot load members from randomuser.me"));
)
- promise 객체 생성
- 리졸브, 리젝트 기다림
- then 메소드 콜백 함수 상위 프로미스 객체의 풀필먼트 함수로 등록
- 리졸브 시 해당 풀필먼트 함수 마이크로태스크큐에 등록
- 프로미스 객체의 풀필먼트 함수 해제