js回调地域 和 用promise解决方法

回调地狱:

function3({cb3()}){
    function2({cb2(cb3)}){               //cb2触发了cb3,并传值
        function1({cb1(cb2)}){         //cb1触发了cb2,并传值 
            cb1(cb2) = cb1('aa')        //给cb1()函数赋值
        }
    }
}

1、函数中的函数

2、子函数通过 参数  触发父函数的 参数,实现层级传值

3、参数中触发基于:

function3(sCallback){
    function2({
     success: (res)=>{
        sCallback(res)
      }
    }){}
}

 

promise:

request(){
    return new Promise((resolve, reject)=>{
        ....
        success;(res)=>{
            resolve(res)
        },
        fail: (error)=>{
            reject(error)
        }
    })
}

getHotList(){
    return this.request({...})
}

getMyBookCount() {
    return this.request({...})
}

bookModel.getHotList()
    .then(
        (res)=>{
            return bookModel.getMyBookCount
        }
    )
    .then(
        (res)=>{...}
    )

1、不断return回一个new Promise()

2、每return一个新的new Promise(),会替换旧的new Promise()

3、只要return后,每次都变为新的new Promise(), 所以new Promise().then()方法是并列的,不会嵌套

 

posted @ 2019-04-04 20:39  254980080  阅读(838)  评论(0编辑  收藏  举报