1、含義
Promise是異步編程的一種解決方案,比傳統(tǒng)的解決方案--回調(diào)函數(shù)和事件--更加合理,解決了回調(diào)地獄的的問題(promise已經(jīng)寫進ES6語言標準中,js原生提供了Promise對象)
2、對象狀態(tài)不受外界影響,只要狀態(tài)改變就不會再次改變,共有三種狀態(tài)(pending--進行中,fulfilled--已成功,rejected--已失?。?,
狀態(tài)只會pending--fulfilled或者pending--rejected其中的一種,狀態(tài)一旦變化,不會更改
3、promise的缺點
promise一旦新建就會立即執(zhí)行,無法中途取消,第二如不設置回調(diào)函數(shù),Promise內(nèi)部拋出的錯誤,不會反應到外部,當處于pending狀態(tài)時,無法得知目前進展到哪一階段。
2、基本用法
a、Promise對象其實是一個構(gòu)造函數(shù),用來生成Promise實例
// new Promise 實例
function timeout(time){
return new Promise((resolve, reject)=>{
setTimeout(resolve, time, "over");
})
}
timeout(1000).then((value)=>{
console.log(value);
});
// 注意:setTimeout(function, time, param1, param2...)的參數(shù),1、(function)延時執(zhí)行的操作(function)。
// 2、延時的時間(time)。
// 3、param1、param2...這是function的參數(shù),但是在timeout函數(shù)中的setTimeout中resovle只返回第一個param1