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

2019/04/04 20:39
阅读数 46

回调地狱:

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()方法是并列的,不会嵌套

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部