回调函数的作用不细说,就拿我目前遇到的作用做个说明
1:jq+h5+c3做动画的时候,往往有先后顺序,比如先开门,人才会出来。他们都是写在一个大的函数里面,执行顺序都是同步的,那该怎样实现,先开门,人才会出来呢?这个时候,就用到了回调函数,当们开的时候,先执行门的动画,在门的动画后面添加回调函数,回调函数里面在执行认出来这个过程,也就是说:当发生某种事件时,系统或其他函数将会自动调用你定义的一段函数。
代码:
$(".search").show().animate({"right": 370}, 1500, "easeOutBack", function () {
$(".search-wrods").show().animate({"opacity": 1}, 500, function () {
$(".search").hide();
$(".search-02-1").show().animate({"height": 30, "right": 250, "bottom": 452}, 500);
$(".goods-02").show().animate({"height": 218}, 1000);
$(".words-02").show().animate({"display": "block"}, 1000,function(){
$(".next").fadeIn();
});
});
2:获取异步操作结果
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
</body>
<script>
/**
* Created by Administrator on 2019/4/28.
*/
function fn() {
setTimeout(function () {
var data = '大家好';
return data;
}, 1000);
}
//调用fn得到内部的data
console.log(fn()); ///undefined
</script>
<script>
// 如果需要获取一个函数异步操作的结果,则必须通过 回调函数来获取
function fn(callback) {
setTimeout(function () {
var data = '大家好';
callback(data);
}, 1000);
}
//调用fn得到内部的data
fn(function (data) {
console.log(data) //大家好
})
</script>
</html>