1. 程式人生 > 其它 >基於ES6提供的回撥函式非同步程式設計優化

基於ES6提供的回撥函式非同步程式設計優化

同步程式設計:按照順序執行任務操作步驟 同步任務連續的,阻塞
和非同步程式設計:並行執行同一個事件迴圈裡面的全部任務 非同步任務非阻塞

非同步與同步
同步任務:
多個任務執行時,後面任務必須等前面任務執行完之後才能執行,這樣執行的任務叫同步任務
非同步任務:
多個任務執行時,可以同時併發執行,相互不影響。

回撥函式是寫在函式方法呼叫裡的函式fn(function fn1(){})

回撥函式就是一個被作為引數傳遞的函式

函式方法呼叫時執行函式體作為的引數

1. 將函式callBack作為引數傳給函式fun, 在函式fun中以形參方式進行

呼叫, 函式callBack就稱為回撥函式
2. 寫法: 兩種
匿名函式形式
3. 使用: 定時器

4. 作用:
解決非同步任務問題

Promise回撥函式是有成功和失敗的函式執行體

Promise物件兩個特點:成功後解決,失敗後拒絕
new Promise(function (resolved,rejected){
if(是否操作成功){
resolve(value);
}else{
reject(error)
}
});
然後再執行他們的結果
回撥函式,
成功後執行then
失敗後抓取原因catch

promise語法
=> ES6提供的一個解決非同步程式設計問題的一個物件
簡單理解為: promise是對非同步操作的封裝,封裝非同步檔案讀寫, ajax非同步網路請求...

Promise物件代表一個非同步操作,有三種狀態:pending(進行中)、fulfilled(已成功)和rejected(已失敗)。不受外界影響,一旦改變就就不會再變執行結果

基本用法:

promise物件
=>非同步操作的結果(成功、失敗)

let promise = new Promise(function(resovle,reject){


//封裝非同步操作程式碼

//成功的結果交給resovle
if(非同步操作成功){
resolve(success)
}
//失敗的錯誤資訊交給reject
else{
reject(error)
}
})

使用promise物件
promise.then( function(success){
// success
} )
promise.catch( function(eror){
//error
} )