프로그래밍/javacscript
[220129] promise를 활용한 자동차 레이싱 게임
한코코
2022. 2. 27. 01:57
[ 목표 ]
- 세 대의 차를 아반떼>소나타>제네시스 순서대로 출발시킨다.
- 출발할때 GO!라는 텍스트를 표시한다.
- 도착할때 END!라는 텍스트를 표시한다.
- 한대의 차가 출발하고 도착하고나서 다음 차가 출발하게 한다.
- 3대의 차가 도착하고나면 경기끝!이란 텍스트를 표시한다.
Promise와 콜백함수
const 아반떼 = new Promise((resolve,reject)=>{
setTimeout(()=>{ resolve('아반떼 GO!'), 1000})
})
아반떼.then( data => {
console.log(data)
console.log('아반떼 END')
})
---------------------------------------------------------------
//출력
아반떼 GO!
아반떼 END
개별적으로 호출해서 출력하기
const 아반떼 = new Promise((resolve,reject)=>{
setTimeout(()=>{ resolve('아반떼 GO!'), 1000})
})
const 소나타 = new Promise((resolve,reject)=>{
setTimeout(()=>{ resolve('소나타 GO!'), 1000})
})
const 제네시스 = new Promise((resolve,reject)=>{
setTimeout(()=>{ resolve('제네시스 GO!'), 1000})
})
아반떼.then( data => {
console.log(data)
console.log('아반떼 END')
})
소나타.then( data => {
console.log(data)
console.log('소나타 END')
})
제네시스.then( data => {
console.log(data)
console.log('제네시스 END')
console.log('경기끝')
})
---------------------------------------------------------------
//출력
아반떼 GO!
아반떼 END
소나타 GO!
소나타 END
제네시스 GO!
제네시스 END
경기끝
순서대로 진행되는 .then의 특성을 이용해서 출력하기
const 아반떼 = ()=>{
return new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve('아반떼 GO!')
},1000)
})
}
const 소나타 = ()=>{
return new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve('소나타 GO!')
},1000)
})
}
const 제네시스 = ()=>{
return new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve('제네시스 GO!')
},1000)
})
}
아반떼()
.then( data => {
console.log(data)
console.log('아반떼 END')
return 소나타()
})
.then( data=>{
console.log(data)
console.log('소나타 END')
return 제네시스()
})
.then( data=>{
console.log(data)
console.log('제네시스 END')
console.log('경기끝')
})
---------------------------------------------------------------
//출력
아반떼 GO!
아반떼 END
소나타 GO!
소나타 END
제네시스 GO!
제네시스 END
경기끝