new Promise
기본
function timer(time) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(time)
}, time)
})
}
timer(1000).then(time => console.log(time))
promise hell 극복
timer(1000)
.then(time => {
console.log(time)
return timer(time+1000)
})
.then(time => {
console.log(time)
return timer(time+1000)
})
.then(time => {
console.log(time)
})
async, await
사용
async function run() {
let time = await timer(1000)
console.log(time)
time = await timer(time + 1000)
console.log(time)
time = await timer(time + 1000)
return time
}
run()
.then(time => console.log(time))
- await 또한 promise를 return
- 따라서 then 사용 가능