什么是Promise?
Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,promise是一个对象,从它可以获取异步操作的的最终状态(成功或失败)。Promise是一个构造函数,对外提供统一的 API,自己身上有all、reject、resolve等方法,原型上有then、catch等方法。
Promise的两个特点
Promise对象的状态不受外界影响
1)pending 初始状态
2)fulfilled 成功状态
3)rejected 失败状态
Promise 有以上三种状态,只有异步操作的结果可以决定当前是哪一种状态,其他任何操作都无法改变这个状态
Promise的状态一旦改变,就不会再变,任何时候都可以得到这个结果,状态不可以逆,只能由 pending变成fulfilled或者由pending变成rejected
创建promise
const promise
= new Promise((resolve
, reject
) => {
if (success
) {
resolve(res
);
} else {
reject(err
);
}
});
function getData(){
let data
= new Promise(function(resolve
,reject
){
});
return data
;
}
function getMore(){
let data
= new Promise(function(resolve
,reject
){
});
return data
;
}
getData
.then(res
=>{
console
.log(res
)
}).catch(err
=>{
console
.log(err
)
})
Promise
.all([getData(),getMore()]).then(function(res
){
console
.log(res
)
});
async,await
function getData(){
let data
= new Promise(function(resolve
,reject
){
});
return data
;
}
function getMore(){
let data
= new Promise(function(resolve
,reject
){
});
return data
;
}
async function get(){
let data
=await getData()
let more
=await getMore()
let dataMore
=await Promise
.all([getData(),getMore()])
}