最近在学习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