promise原理说起来并不难,它内部有三个状态,分别是pending,fulfilled和rejected 。
pending是对象创建后的初始状态,当对象fulfill(成功)时变为fulfilled,当对象reject(失败)时变为rejected。且只能从pengding变为fulfilled或rejected ,而不能逆向或从fulfilled变为rejected 、从rejected变为fulfilled
Promise 的简单使用
1 | // promise时对异步操作的封装 |
异步操作成功调用resolve函数传入处理结果,并在then中传入处理函数,失败则调用reject函数,并在catch中处理失败函数。
then可以传入第二个参数函数处理异步失败处理函数。
1 | // promise时对异步操作的封装 |
Promise 的链式操作
1 | // 链式操作 |
依次在处理函数中new Promise来依次处理异步操作。
输出:
第一次处理!
第二次处理!
1 | new Promise((resolve, reject) => { |
输出结果
第一层代码开始处理
第二层代码处理
第三层代码处理
异步结果: 我开始学习Promise
1 | new Promise((resolve, reject) => { |
最终输出
第一层代码开始处理
err message