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