最近在學習node.js nodeJS的核心之一就是回調。之前理解一直概念不清。所以查了很多資料。
以下是分享下個人對于異步回調的理解:
先說說回調:
1、回調的作用:
執行B事件的條件是必須先執行完A
簡單解釋:你送女友回家,叫她到家給你打電話。先到家再call你。當然如果沒女友的。。額。你可以意淫下。
2、什么是回調函數:
不解釋上代碼。
f2 = function(callbackFn,v1,v2){
callbackFn(v1,v2);
};
f1 = function(v1,v2){
document.write(v1+v2);
};
f2(f1,1,2);
把函數作為參數傳遞并調用成為回調函數。
同步異步這里不做解釋。下面說說異步回調。
那么異步回調是什么呢:
類似貼吧中。如果某帖子有圖片,當你點開帖子的時候,你先看到文字,然后經過圖片下載后再呈現出來。 這一個過程就是一個異步回調過程。
js是單線程執行到底,所以要讓圖片不影響你看文字就需要進行異步,而圖片要加載完后再顯示出來,這就是回調。
總的來說。回調和異步并沒有直接聯系。
以下代碼用于模擬文字不會受圖片加載的影響
<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,'最后執行');
f3();
</script>
以上是個人理解,如有錯誤歡迎指正。
參考博客:
https://segmentfault.com/a/1190000007227305