Promise
Promise
Promise 的基本使用
1 | const p = new Promise((resolve, reject) => {}); |
Promise 接受一个函数作为参数
在参数函数中有两个参数
resolve: 成功函数
reject: 失败函数
1) Promise 的状态
第一种状态: pending
第二种状态: fulfilled
第三种状态: rejected
2) Promise 状态的改变
1 | const p = new Promise((resolve, reject) => { |
1 | const p = new Promise((resolve, reject) => { |
- resolve(): 调用函数, 使当前 Promise 对象的状态改成
fulfilled
- reject(): 调用函数,使当前 Promise 对象状态改成
rejected
3) Promise 的结果
1 | const p = new Promise((resolve, reject) => { |
Promise 的方法
1) then 方法
1 | const p = new Promise((resolve, reject) => { |
在 then 方法中,通过 return 将返回的 Promise 实例改为 fulfilled 状态
1 | // 如果Promise的状态不改变,then里的方法不会执行 |
在 then 方法中,出现代码错误,将返回的 Promise 实例改为 rejected 状态
1 | // 如果Promise的状态改变,then里的方法不会执行 |
2) catch 方法
示例
1 | const p = new Promise((resolve, reject) => { |
async 和 await
1) async 函数
- 函数的返回值为 promise 对象
- promise 对象的结果由 async 函数执行的返回值决定
示例
1 | async function main(){ |
返回值是一个 Promise 对象
2) await 表达式
- await 右侧的表达式一般为 promise 对象, 但也可以是其它的值
- 如果表达式是 promise 对象, await 返回的是 promise 成功的值
- 如果表达式是其它值, 直接将此值作为 await 的返回值
注意
- await 必须写在 async 函数中, 但 async 函数中可以没有 await
- 如果 await 的 promise 失败了, 就会抛出异常, 需要通过 try…catch 捕获处理
3) async 和 await 结合
示例
1 | const fs = require("fs"); |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 !