Promise - 承诺
+ 一个承诺多少个状态
=> 持续 pending
=> 成功 resolved
=> 失败 rejected
+ ES6 的语法
=> 专门用来解决回调地狱问题

Promise 的语法
+ Promise 是 ES6 内置的构造函数
+ 语法: new Promise(function () { 你要执行的异步的事情 })
=> 实例化的时候, 这个函数接收两个参数
=> resolve, reject
+ 语法:
=> 实例化对象身上由两个方法
1. then()
-> promise对象.then(function () {})
2. catch()
-> promise对象.catch(function () {})
=> then 方法的函数传递给了 实例化的 resolve
=> catch 方法的函数传递给了 实例化的 reject

Promise 的进阶语法
+ 当你再一个 promise 对象的 then 里面返回一个新的 promise 对象
+ 你可以再这个 then 的后面继续来一个 then 接收第一个 then 里面 promise 对象的结果

改变封装异步代码的思路
+ 按照 promise 的思想来封装异步代码
+ 分析: 为什么可以使用 then
=> 得是一个 promise 对象
+ 封装:
=> function pAjax() {}
=> 只要 pAjax 里面返回的是一个 promise 对象
=> pAjax({ 配置项 }).then()

Promise 的另一种语法
+ Promise.all()
+ 目的是把多个 promise 对象封装成一个
+ 语法: Promise.all([ promise对象1, promise对象2, ... ]).then(function () {})
+ then 里面会接收所有 promise 完成以后的结果, 以一个数组的形式给你返回
+ 致命缺点: 必须三个全部成功, 由任何一个失败, 那么最终你一个结果也得不到

posted on 2021-09-15 09:14  phantom_yy  阅读(31)  评论(0)    收藏  举报