Promise
Promise
1.什么是Promise
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Promise 是异步编程的一种解决方案,其实是一个构造函数,自己身上有all、reject、resolve,race这几个方法,原型上有then、catch等方法。
1. 抽象表达: 1) Promise 是一门新的技术(ES6 规范) 2) Promise 是 JS 中进行异步编程的新解决方案 备注:旧方案是单纯使用回调函数 2. 具体表达: 1) 从语法上来说: Promise 是一个构造函数 2) 从功能上来说: promise 对象用来封装一个异步操作并可以获取其成功/ 失败的结果值 1.1.2. promise 的状态改变 1. pending 变为 resolved 2. pending 变为 rejected 说明: 只有这 2 种, 且一个 promise 对象只能改变一次 无论变为成功还是失败, 都会有一个结果数据 成功的结果数据一般称为 value, 失败的结果数据一般称为 reason
|
2.Promise-API
1 2 3 4 5 6 7 8 9
| 1. Promise 构造函数: Promise (excutor) {} 2. Promise.prototype.then 方法: (onResolved, onRejected) => {} 3. Promise.prototype.catch 方法: (onRejected) => {} 4. Promise.prototype.finally 方法: () => {} 5. Promise.resolve 方法: (value) => {} 6. Promise.reject 方法: (reason) => {} 7. Promise.all 方法: (promises) => {} 8. Promise.race 方法: (promises) => {} 9. Promise.allSettled 方法: (promises) => {}
|
3.关键问题
1 2 3 4 5 6 7
| 1. 如何改变 promise 的状态? 2. 一个 promise 指定多个成功/失败回调函数, 都会调用吗? 3. 改变 promise 状态和指定回调函数谁先谁后? 4. promise.then()返回的新 promise 的结果状态由什么决定? 5. promise 如何串连多个操作任务? 6. promise 异常传透? 7. 中断 promise 链?
|
4. async 与 await
1 2 3
| 1. async 函数 2. await 表达式 2. 注意点
|
5. 其他
``` bash
1. promise的应用场景
2. promise 、async/await 在事件循环机制中的不同之处