參考資料
方老師的解釋
阮一峰老師關(guān)于異步,如何解決異步的看法
如何用Promise使回調(diào)地獄可控
promise的作用
- 確定異步操作的順序
- 對(duì)異步操作的有關(guān)參數(shù)進(jìn)行監(jiān)控
promise的三種狀態(tài)
- pending(進(jìn)行中)
- fulfilles(已成功)
resolve(data)-->then()
- rejected(已失敗)
reject(err)-->catch()
用promise改寫(xiě)一個(gè)回調(diào)函數(shù)
function asyPrint(callback){
setTimeout(function(){
console.log('haha')
},1000)
callback('haha');
}
asyPrint(function(data){
alert(data)
})
用Promise來(lái)改寫(xiě)
let asyPrint=()=>new Promise((resolve,reject)=>{
setTimeout(()=>{
let data='haha';
console.log(data);
return resolve(data)
},1000)
})
asyPrint().then(function(data){alert(data)});
PromiseValue
fn().then(fa).then(fb),fa返回給fb的參數(shù)被稱為PromiseValue,如果fa無(wú)返回值妙痹,則PromiseValue為undefined