首先必定要搞清楚回调的英文名 —— 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(() => { })