[英]Can Someone Explain me the Callback functions?
我最近开始学习javascript,我看到了很多回调函数。 这些功能是什么,为什么使用它们以及用于什么? 我很乐意得到真正的基本定义,因为我想理解它,因为我意识到它在js中非常重要。
谢谢 :)
回调函数是作为参数传递给另一个函数的函数。
回调函数将由您传递给它的函数(或链中的另一个函数)调用。
这通常在函数执行异步操作时完成,因此您不能使用返回值。
主要的例子是事件:
// call someFunction when the document is loaded
addEventListener('load', someFunction);
或时间相关的电话:
// call someFunction after 30 seconds have elapsed
setTimeout(someFunction, 30000);
我们知道我们可以传递不同类型的变量,object作为函数的参数。 在javascript中,如果函数作为参数传递,那么它被称为Callback funbction。
在某些事件/条件上调用回调函数,直到程序可以执行其他代码。 仅当发生特定事件或满足特定条件时才执行回调函数。
顾名思义,回调函数是匿名或命名函数,它们作为参数传递给另一个函数或AJAX调用等,并将在javascript引擎完成某个操作后执行。
例如。 一旦AJAX调用返回数据,您就可以传递一个回调函数。 我简单地使用jQuery:
$.ajax( {
url: "/my-api-path/",
data: myParams
}).done(myCallback);
这里,myCallback是一个在AJAX调用完成后执行的函数。 在这种情况下,将使用AJAX调用返回的响应对象调用回调函数。 注意这个回调是如何作为jQuery的AJAX API提供的.done方法的参数传递的。
在另一个例子中,
setTimeout(
function() {
alert("Im inside a callback function!");
}, 2000 );
这里包含警报的函数是在javascript中传递给setTimeout方法的两个参数中的第一个。 第二个是应该执行此函数的毫秒数。 由于此函数没有名称,因此称为匿名函数。
相同的代码可以重写为:
var myCallback = function(){
alert("Im inside a callback");
};
setTimeout(myCallback, 2000);
操作完成后立即执行回调。 因此,在引擎遇到setTimeout语句后,它会将myCallback函数存储在引用中,然后在setTimeout语句之后继续执行。 一旦经过2秒,它将实现执行回调的时间,因此执行将跳转到回调。 然后警报将执行,回调函数将终止并且执行将从2秒后的状态继续返回并且引擎跳转到回调。
希望这能解释回调是如何工作的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.