首先必定要搞清楚回調的英文名 —— callback
什麼是callback?回電話
ajax
假如你如今去一個商店買橘子,結果沒有橘子了 店員說,如今供貨不穩定,不知道啥時候纔能有橘子 let 商店 function 進貨橘子() { setTimeout(() => { 商店.orange = 10 }, Math.random() * 10000) } 進貨橘子() 而後,你和店員說,這樣吧,留個電話號碼給你,橘子一到貨,你就回個電話給我 function 你的電話號碼() { console.log(arguments[0]) console.log('好的,我立刻來') } 店員說,行呀,那我把您的電話號碼登記好 function 進貨橘子(顧客電話號碼) { setTimeout(() => { 商店.orange = 10 顧客電話號碼().call(undefined,'橘子到啦,您快來買把') }, Math.random() * 10000) }
咱們整理一下segmentfault
let 商店 function 進貨橘子(顧客電話號碼) { setTimeout(() => { 商店.orange = 10 顧客電話號碼().call(undefined,'橘子到啦,您快來買把') }, Math.random() * 10000) } function 你的電話號碼() { console.log(arguments[0]) console.log('好的,我立刻來') } 進貨橘子(你的電話號碼)
回調函數
通知你
觸發回調函數
先判斷error是否存在,存在則說明出現了錯誤,不存在則成功
dom
fs.readFile('./1.txt', (error, content) => { if (error) { // 失敗 } else { // 成功 } })
$.ajax({ url: '/xxx', success: () => { }, error: () => { } })
$.ajax({ url: '/xxx', }).done(() => { }).fail(() => { }).always(() => { })
詳情請見淺析Promise全部異步操做返回一個帶有屬性then的對象
異步
$.ajax({ url: '/xxx', }).then(() => { }, () => { }).then(() => { })