본문 바로가기

basic/Vanilla.js

콜백지옥

function a() {
    return new Promise(resolve => {
        setTimeout(() => {
            console.log('A')
            resolve()
        }, 1000)
    })
}
function b() {
    return new Promise(resolve => {
        setTimeout(() => {
            console.log('B')
            resolve()
        }, 1000)
    })
}
function c() {
    return new Promise(resolve => {
        setTimeout(() => {
            console.log('C')
            resolve()
        }, 1000)
    })
}
function d() {
    return new Promise(resolve => {
        setTimeout(() => {
            console.log('D')
            resolve()
        }, 1000)
    })
}
 
function test() {
    a().then(() => {
        b().then(() => {
            c().then(() => {
                d().then(() => {
                    console.log('callback hell')
                })
            })
        })
    })
}
 
test();
//promise를 반환하므로
function test() {
    a().then(() => {
        return b()
    }).then(() => {
        return c()
    }).then(() => {
        return d()
    }).then(() => {
        console.log('fin')
    })
}
 
test();

'basic > Vanilla.js' 카테고리의 다른 글

스크롤 현재 위치 구하기 (스크롤 이동)  (0) 2021.10.14
변수 || &&  (0) 2021.07.21
promise  (0) 2021.05.31
객체에서 키이름에 대괄호 쓰는 이유  (0) 2021.05.26
function* yield  (0) 2021.05.25