✍️
javascript
  • 자바스크립트 시작하기
  • 자바스크립트 기초 문법
  • 변수
  • 배열
  • 객체
  • 연산자
  • 조건문
    • if 문
    • if~else
    • 다중 if문
    • 중첩 if문
    • switch문
    • 삼항 연산자
  • 반복문
    • while문
    • do while문
    • for문
    • 중첩 for문
    • break문
    • continue문
  • 함수
    • 선언적 함수
    • 익명함수
    • 매개변수가 있는 함수
    • Arguments 함수
    • 리턴값이 있는 함수
    • 재귀 함수
    • 콜백 함수
    • 내부함수(스코프)
    • 객체 생성자 함수
    • 프로토타입 함수
    • 화살표 함수
    • 클래스
    • Promise
    • 함수 정리
    • 템플릿 리터럴
  • 내장 객체
    • String 객체
      • split()
      • join()
    • Number 객체
    • Date 객체
    • Array 객체
    • Math 객체
    • 정규표현 객체
  • 브라우저 객체
    • window 객체
    • navigator 객체
    • screen 객체
    • history 객체
    • location 객체
  • 문서 객체
  • 이벤트
Powered by GitBook
On this page
  1. 함수

Promise

Previous클래스Next함수 정리

Last updated 4 years ago

Was this helpful?

CtrlK
  • 동기
  • 비동기
  • 콜백 지옥

Was this helpful?

동기

function a(){
    console.log("A");
}
function b(){
    console.log("B");
}
a();
b();
//A
//B

비동기

function a(){
    setTimeout(function(){
        console.log("A");
    },1000)
}
function b(){
    console.log("B");
}
a();
b();
//B
//A

콜백 지옥

function a(callback){
    setTimeout(function(){
        console.log('A');
        callback();
    },1000);
}
function b(callback){
    setTimeout(function(){
        console.log('B');
        callback();
    },1000);
}
function c(callback){
    setTimeout(function(){
        console.log('c');
        callback();
    },1000);
}   
function d(callback){
    setTimeout(function(){
        console.log('d');
        callback();
    },1000);
}   
a(function(){
    b(function(){
        c(function(){
            d();
        });
    });
});

//a
//b
//c
//d
//promise
function a(){
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            console.log("A");
            resolve();
        }, 1000);
    });
}
function b(){
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            console.log("B");
            resolve();
        }, 1000);
    });
}
function c(){
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            console.log("C");
            resolve();
        }, 1000);
    });
}
function d(){
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            console.log("D");
            resolve();
        }, 1000);
    });
}
// a().then(() => {
//     return b()
// }).then(() => {
//     return c()
// }).then(() => {
//     return d()
// })

a()
.then(() => b())
.then(() => c())
.then(() => d())

//A
//B
//C
//D
// promise
function a(){
    return new Promise((resolve, reject) => {
        if(isError){
            reject()
        }
        setTimeout(() => {
            console.log("A");
            resolve();
        }, 1000);
    });
}
a()
    .then()
    .catch((error) => {
        console.log(error)
    })