原理:
-
Promise 是一个对象通过它可以获取异步操作的消息
-
构造函数 Promise 必须接收一个函数(handle)作为参数,函数又包含 resolve 和 reject
状态:
1.Pending 等待态
2.Fulfilled 执行态
3.Rejected 拒绝态
方法:
1.then
2.catch
3.finally
4.resolve
5.reject
6.all:
const result = Promise.all([p1, p2, p3])
多文件上传(碎片生成)
7.race: const result = Promise.race([p1, p2, p3])
//请求某个图⽚资源
function requestImg(){
var p = new Promise((resolve, reject) => {
var img = new Image()
img.onload = function(){
resolve(img)
}
img.src = '图⽚的路径'
})
return p
}
//延时函数,⽤于给请求计时
function timeout(){
var p = new Promise((resolve, reject) => {
setTimeout(() => {
reject('图⽚请求超时')
}, 5000)
})
return p
}
Promise.race([requestImg(), timeout()]).then((data) =>{
console.log(data)
}).catch((err) => {
console.log(err)
})
8.any
const result = Promise.any([p1, p2, p3])
从最快的服务器检索资源,如果存在多台服务器,从最快的一台服务器获取资源。
9.allSettled
const result = Promise.allSettled([p1, p2, p3])
以数组形式返回全部结果