1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <title>Document</title> 8 </head> 9 <body> 10 <script> 11 // Promise 单词表示承诺 12 // 是干嘛的? 是js中一种异步编程的解决方案(使异步函数可以同步执行),在没有promise之前,js是通过回调函数来实现异步编程的同步操作的 13 // Promise 解决了什么问题? 回到地狱,回调地狱是什么?回调函数层层嵌套 14 // promise的优势? 使异步函数可以同步的执行,解决了回调地狱的问题 15 // Promise是一个构造函数 16 // 理解:它是一个容器,内部分装了异步操作 17 // 参数:回调函数 18 // resolve表示then方法的回调函数 19 // 参数:lei hao a 会传递给data 20 21 22 // 成功 23 const p=new Promise(function(resolve,reject){ 24 // 异步操作成功就调用resolve 25 // 异步操作失败就调用reject 26 setTimeout(()=>{ 27 //参数:表示成功后,要传递的数据 28 resolve('lei hao a') 29 },2000) 30 }) 31 p.then(function(data){ 32 console.log('异步操作成功了',data) //两秒后输出 异步操作成功了 lei hao a 33 }) 34 35 36 37 38 39 // 失败 40 const L=new Promise(function(resolve,reject){ 41 // 异步操作成功就调用resolve 42 // 异步操作失败就调用reject 43 setTimeout(()=>{ 44 //参数:表示失败后:会将参数传递给err 45 reject('出错了') 46 },2000) 47 }) 48 L.then(function(data){ 49 console.log('异步操作成功了',data) 50 }).catch(function(err){ 51 console.log(err) 52 }) 53 54 </script> 55 </body> 56 </html>