发布于  更新于 

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 在事件循环机制中的不同之处

本站由 @anonymity 使用 Stellar 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。



本"页面"访问 次 | 👀总访问 次 | 🥷总访客