同步編程:按照順序執行任務操作步驟 同步任務連續的,阻塞
和異步編程:並行執行同一個事件循環里面的全部任務 異步任務 非阻塞
異步與同步 | |
同步任務: | |
多個任務執行時,后面任務必須等前面任務執行完之后才能執行,這樣執行的任務叫同步任務 | |
異步任務: | |
多個任務執行時,可以同時並發執行,相互不影響。 |
回調函數是寫在函數方法調用里的函數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
} )
為什么需要異步編程:https://www.cnblogs.com/goya/p/11962828.html