最近真是走霉運,跟了我近兩年的手機,小六子被人偷了,瑪德,好多應用和圖片信息什么的全都沒備份,真是要死的心都有了。幸好第一時間把信息抹除了,昨天開始收到釣魚短信,要套路我的iPhoneID和密碼,妄想!該死的小偷,你只能拆零件去賣了。
感覺現在手機就像一個老朋友一樣,沒有了之后特別不習慣,尤其是一個用了好久的手機,依賴性好大。愿天下偷手機的小偷都原地爆炸一百次。。。。
今天忙里偷閑,記個筆記,關于回調函數。馬上要下班了,憋尿中碼字,舒坦。。。
JS中的回調函數一共有兩種
- 同步回調函數(即普通的回調函數)。
- 異步回調函數
注:JS中的同步異步和現實生活的正好相反。
其中同步回調函數是要等到回調函數都執行完成后才能進行接下來的操作,也就是說是阻塞式運行。
話不多說,舉個栗子說明
function waitFive(callback){
var currentDate = new Date(),
pus = 0;
while(pus<1000){
var date = new Date();
pus = date - currentDate;
}
callback("回調執行完成");
pus = 2000;
}
waitFive(
function(msg){ //這里就是callback回調函數
console.log(msg);
}
);
console.log("進行第二步操作;");
*****執行結果為:*****
回調執行完成
進行第二步操作
這里就是同步回調函數,必須等callback執行完畢之后才能執行下邊的
console.log("進行第二步操作;");
而異步回調函數不需要等到回調函數都執行完成后才能進行接下來的操作,也就是說是非阻塞式運行。
JavaScript語言說來也奇葩,為什么沒有設定異步執行呢,要執行異步程序,只能借助定時器功能了。
還是舉個栗子吧,把上邊的栗子改一下。。。
function waitFive(callback){
setTimeout(function(){
callback('回調執行完成');
},2000);
}
waitFive(
function(msg){ //這里就是callback回調函數
console.log(msg);
}
);
console.log("進行第二步操作;");
*****執行結果為:*****
進行第二步操作
回調執行完成
反正也沒人看,自己寫著玩吧 意外發現一個問題,在定時器中傳參回調函數,回調函數就成了字符串了,這是為毛呢???明天再看吧,下班回家了。心酸。。。