JAVASCRIPT
[JAVASCRIPT] 비동기 - 콜백과 프로미스, 예외 처리(then, catch, finally)
mikrw
2023. 2. 10. 23:38
method가 순서대로 실행되기 위한 방법
1. 콜백(callback)
function a(callback) {
console.log('A')
callback()
}
function b() {
console.log('B')
}
a(function(){
b()
})
2. 프로미스(promise)
function a(){
return new Promise(function (resolve){
setTimeout(function (){
console.log('A')
resolve('Hello')
}, 1000)
})
}
function b(){
console.log('B')
}
async function test(){
const res = await a()
console.log('res:', res)
b()
}
test()
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Promise
Promise - JavaScript | MDN
Promise 객체는 비동기 작업이 맞이할 미래의 완료 또는 실패와 그 결과 값을 나타냅니다.
developer.mozilla.org
then
function a(){
return new Promise((resolve) => {
setTimeout(() => {
console.log('A')
resolve()
}, 1000)
})
}
function test() {
a().then(() => {
console.log('B')
})
}
test()
catch
finally
function a(number) {
return new Promise((resolve, reject) => {
if(number > 4) {
reject()
return
}
setTimeout(() => {
console.log('A')
resolve()
}, 1000)
})
}
function test() {
a(5)
.then(() => {
console.log('Resolve')
})
.catch(() => {
console.log('Reject')
})
.finally(() => {
console.log('Done')
})
}
test()