Promise 之基础详细介绍
- JavaScript 中的 promise 代表的是已经正在发生的进程(程序或者功能)
- Promise 是 JS中进行异步编程的新的解决方案
-
从语法上面说 Promise 是一个构造函数
-
从功能上面说 Promise 对象用来封装一个异步操作并可以获得其结果
Promise有三种状态 pedding(等待执行完成 或者 待定 ) resolved(结果成功) rejected(结果失败) 执行结果只有这两种 并且从padding状态改变为 resolved 或者 rejected .只能改变一次 无论成功与失败,Promise都会返回一个结果,成功的结果一般称为value(值),失败的结果一般称为reason(原因)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body> <script> new Promise((resolve, reject) => { //这里是new 一个Promise对象,Promise对象中传了一个函数(这个函数用来执行异步操作,该函数又传入了resolve(成功)和reject(失败)两个参数(函数)),
在这个函数中只有执行了 resolve 或者 reject 才能进入then()函数中,如果不执行就不会进入then函数中 //执行异步操作 setTimeout(() => { // 使用setTimeout模仿异步操作 let time = Date.now(); //偶数成功 否则失败 if (time % 2 == 0) { //如果成功调用 resolve(value) 函数 value值结果 resolve('成功的数据:' + time); //状态值发生改变 从 pedding 改变成 resolved } else { //失败调用reject(reason)函数 reason 原因 reject('失败的数据:' + time); //状态值发生改变 从 pedding 改变成 rejected } }, 50); }).then( (value) => { // 接收得到成功的value数据 onResolved console.log('接收得到的成功回调', value); }, (reason) => { //接收得到失败的reason数据 onRejected console.log('接收得到的失败回调', reason); } ); </script> </body> </html>