什么是Promise
Promise 表示未来的某个时间一定会返回的结果,它是一个容器,里面报过了一些异步操作 ,他表示一个预计会在完成的异步操作
Promise实例
function chiFan() {
return new Promise(function(resolve, reject) {
console.log("chiFan");
})
}
function shuiJiao() {
return new Promise(function(resolve, reject) {
console.log("shuiJiao");
})
}
function daDouDou() {
return new Promise(function(resolve, reject) {
console.log("daDouDou");
})
}
// 调用函数
chiFan()
.then(shuiJiao())
.then(daDouDou())
Promise实例API
1.实例方法
(1).then 得到异步任务的正确结果
(2).catch 获取异常信息
(3).finally 成功与失败都会执行
2.对象方法
(1)Promise.all() 并发处理多个异步任务,所有任务都能执行完成才能得到结果
(2)Promise.race() 并发处理多个异步任务,只要有一个任务完成就能得到结果
PromiseAPI和应用
then
1.统一的回调注册
then 方法提供了一个统一的回调注册接口,无论注册时该异步 promise 是否已经成功,都会保证回调函数会被及时调用。
2. 链式操作
hen 会返回一个新的 promise 对象,那么在这个返回对象上可以继续调用 then 方法
3. 嵌套链式操作
回调函数也可以返回一个 promise 对象,那么 then 返回的 promise 对象则会等待回调函数返回的 promise 对象成功后才算成功
all
1.使用 all 也可以达到嵌套调用的效果(同时等待多个 promise 成功),并可一次性得到导致所有 promise 成功的值
when
使用 when 可以不加区别得对待 promise 对象和非 promise 对象
Promise的三种状态
pending进行中 fulfilled 已成功 rejected以失败
Promise状态变化
pending =>fulfilled 或者 pending=>rejected 不可逆的,而且一旦执行成功状态就会凝固 不会在发生其他变化了