最近真是走霉运,跟了我近两年的手机,小六子被人偷了,玛德,好多应用和图片信息什么的全都没备份,真是要死的心都有了。幸好第一时间把信息抹除了,昨天开始收到钓鱼短信,要套路我的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("进行第二步操作;");
*****执行结果为:*****
进行第二步操作
回调执行完成
反正也没人看,自己写着玩吧 意外发现一个问题,在定时器中传参回调函数,回调函数就成了字符串了,这是为毛呢???明天再看吧,下班回家了。心酸。。。