ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프로미스 기초
    concept/javascript 2020. 6. 26. 03:53
    let users = ['oana', 'mino', 'ben', 'wil']
    
    function myPromise(sec){
        return new Promise((resolve, reject) => {
            setTimeout(() => {
                if(users){
                    resolve(users)
                } else {
                    reject(users)
                }
            }, sec * 1000)
        })
    }

    new Promise로 새로운 promise 객체를 생성하고

    if 조건문에 성립할 때는 resolve를 통해 users를 내보내준다.

    그래서 myPromise 함수를 실행하고 뒤에 .then을 붙이게 되면 그 parameter로 resolve() 안에 있는 users가 나오게 되는 것이다.

    이게 바로 메소드 체이닝!

     

    메소드 체이닝이란?
    메서드가 객체를 반환하게 되면, 메서드의 반환 값인 객체를 통해 또 다른 함수를 호출할 수 있다.
    이러한 프로그래밍 패턴을 메서드 체이닝(Method Chaining) 이라 부른다.

     

    myPromise(1).then((result)=> { // ** 이 때 result는 users
        console.log(1, result); // 1 ["oana", "mino", "ben", "wil"]
        return myPromise(1) // ** 여기서 리턴을 해줘야 다음 then의 result로 users를 받을 수 있다.
    }).then((result)=> {
        console.log(2, result); // 2 ["oana", "mino", "ben", "wil"]
        return myPromise(1)
    }).then((result)=> {
        console.log(3, result); // 3 ["oana", "mino", "ben", "wil"]
    }).then(()=> {
        console.log('done!') // done!
    })

     

    댓글

Designed by Tistory.