es6 Promise
Promise 解决回调地狱的问题。
我们在使用jq的ajax时,必须一步一步进行函数嵌套。Promise的出现使回调嵌套更加优雅了,也更加方便。
通俗易懂的来说,它相当于是打怪,得先把第一个boss打通关,下一个任务才会进行。
备注:.catch 是错误时执行的,也就是说,返回的是reject状态
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> </body> <script> var sdata = 1 function sp1(resolve,reject){ setTimeout(()=>{ if(sdata==1){ resolve({mgs:'登录成功'}) }else{ reject({mgs:'登录失败'}) } },2000) } function sp2(resolve,reject){ setTimeout(()=>{ if(sdata==1){ resolve('开始获取用户信息') }else{ reject('获取信息失败') } },2000) } var sp3 = (resolve,reject)=>{ setTimeout(()=>{ sdata =0 if(sdata==1){ resolve('填充到页面') }else{ reject('填充失败') } },2000) } new Promise(sp1).then((val)=>{ console.log(val) return new Promise(sp2) }).then((val)=>{ console.log(val) return new Promise(sp3) }).then((val)=>{ console.log(val) return val }).catch(err=>{ console.log(err) }) </script> </html>