最近在學(xué)習(xí)node.js nodeJS的核心之一就是回調(diào)息尺。之前理解一直概念不清。所以查了很多資料。
以下是分享下個(gè)人對(duì)于異步回調(diào)的理解:
先說(shuō)說(shuō)回調(diào):
1寒跳、回調(diào)的作用:
執(zhí)行B事件的條件是必須先執(zhí)行完A
簡(jiǎn)單解釋:你送女友回家爷辙,叫她到家給你打電話彬坏。先到家再call你。當(dāng)然如果沒(méi)女友的膝晾。栓始。額。你可以意淫下血当。
2幻赚、什么是回調(diào)函數(shù):
不解釋上代碼。
f2 = function(callbackFn,v1,v2){
callbackFn(v1,v2);
};
f1 = function(v1,v2){
document.write(v1+v2);
};
f2(f1,1,2);
把函數(shù)作為參數(shù)傳遞并調(diào)用成為回調(diào)函數(shù)臊旭。
同步異步這里不做解釋落恼。下面說(shuō)說(shuō)異步回調(diào)。
那么異步回調(diào)是什么呢:
類似貼吧中离熏。如果某帖子有圖片佳谦,當(dāng)你點(diǎn)開帖子的時(shí)候,你先看到文字滋戳,然后經(jīng)過(guò)圖片下載后再呈現(xiàn)出來(lái)钻蔑。 這一個(gè)過(guò)程就是一個(gè)異步回調(diào)過(guò)程。
js是單線程執(zhí)行到底奸鸯,所以要讓圖片不影響你看文字就需要進(jìn)行異步咪笑,而圖片要加載完后再顯示出來(lái),這就是回調(diào)娄涩。
總的來(lái)說(shuō)窗怒。回調(diào)和異步并沒(méi)有直接聯(lián)系。
以下代碼用于模擬文字不會(huì)受圖片加載的影響
<script typet="text/javascript" src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
<script>
f2= function (str){
$("#f2").html(str)
};
f3= function (){
$("#f3").html('我是F3')
};
function f1(callback,str){
var i =0;
setInterval(function(){
$("#f1").html(i)
if(i>=50){
callback(str);
return false;
}
i++;
},100);
}
f1(f2,'最后執(zhí)行');
f3();
</script>
以上是個(gè)人理解扬虚,如有錯(cuò)誤歡迎指正努隙。
參考博客:
https://segmentfault.com/a/1190000007227305