异步计算,异步操作队列化,按照期望的顺序执行。可以在对象间传递操作promise
优点:1.可读性好 2返回的值可以加入到任何一个promise队列
链式写法 不用关心程序 只关心结果
new Promise().then().catch()
两个参数 resolve reject 两个状态 resolve成功 reject 失败 pending未完成
new Promise(function(resolve,reject){})
.then()
.catch()
在任何一个地方生成一个promise队列 可以作为一个变量传递到其他地方去
promise接收两个函数作为参数 resolve reject 1接收两个参数 resolve reject
then返回一个新的promise实例 2then返回一个新的promise实例 没有的话返回null 下面的then会立即执行
promise状态改变 then通过其状态响应 3then随着promise的状态改变而改变
响应函数可以返回一个新的promise对象 没有的话返回null 4返回任何其他值 then都会立即触发
如果返回新的promise 下一个then会在其新promise改变后响应
返回其他任何值 then都会立即触发
-----------------------------------
then套then的情况下 会等里面的then执行完之后再执行外面的then
-----------------------------------
错误信息处理
reject('错误信息').then(()=>{},()=>{错误处理逻辑})
---------------------------------
promise.all()
1.接收一个数组做为对象
2.当所有的promise都完成 当前的promise完成 返回值是全部值的数组
3.如果有一个是失败 则返回值为第一个失败promise的结果
promise.rece() 如果有一个完成则是完成的状态
例如定时器 判断多少毫秒后页面响应
-----------------------------------------------