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