什么是回调函数?
What are callback function?
我问了一个朋友,问这个代码中的(data, function(i,e)
是什么,他说这是回调然后我在网上搜索回调但不明白。我读到了这个 What are callback methods?什么是最简单的回调?
$.each(data, function(i,e){
console.log(e.id);
});
这里(data, function(i,e)
有什么用?
$.ajax({
type: "GET",
url: pbxApi+"/confbridge_participants/conference_participants.json?cid="+circle,
dataType: "jsonp",
jsonpCallback: 'callback',
contentType: "application/javascript",
success: function(data) {
console.log(data);
}
});
回调函数是作为参数传递给另一个函数的函数,回调函数在另一个函数内部被调用(或执行)。
像这样
(data, function(i,e)
我们可以像变量一样传递函数,return 在函数中传递它们,并在其他函数中使用它们。当我们将回调函数作为参数传递给另一个函数时,我们只是在传递函数定义。
注意回调函数不会立即执行。它在包含函数主体内的某个指定点“回调”。欲了解更多信息 Refer Here
一个被回调的回调方法。
谁给你回电话了?
你的框架回调它。
为什么会回调?
因为你要求它被回调,因为你想在发生某些事情时做一些处理。
例子
您正在进行一些处理,但不知道何时完成。您提供一个回调,然后继续其他一些工作。您的回调函数将被回调以告诉您处理已完成,您现在可以做一些事情了。
您想知道某个控件何时触发某个事件,以便您可以进行一些处理。您提供一个回调函数作为事件处理程序。
您对框架完成的默认处理不满意并想覆盖该处理,您提供回调,框架回调它以使用您自己的处理。
所以,一般来说:您要求 component/framework 调用您提供的方法。你永远不会从你的代码中调用提供的方法,其他人会回调它。
正常情况下,JavaScript条语句是逐行执行的。但是,有了效果,即使效果没有完成,下一行代码也可以是运行。这可能会产生错误。
为防止这种情况,您可以创建一个回调函数。
当前效果完成后执行回调函数
例如,这是一个回调函数:
$("button").click(function(){
$("p").hide("slow", function(){
alert("The paragraph is now hidden");
});
});
在这种情况下,函数 hide 将在该警报之前执行,这正是我们想要的。
另一方面,如果您不使用回调函数,请这样说:
$("button").click(function(){
$("p").hide(1000);
alert("The paragraph is now hidden");
});
在这种情况下,alert 甚至会在函数 hide 执行之前执行。这是回调函数在Javascript.
中的典型用法
回调函数是您指定给现有 function/method 的函数,在操作完成、需要额外处理等时调用
*这里有一些小东西可以让你更好地理解回调:
Guy 1 到 Guy 2:嘿伙计,我想在用户点击那里时做点什么,发生这种情况时给我回电话好吗?
当用户点击此处时,小伙子 2 给小伙子 1 回电话。*
我问了一个朋友,问这个代码中的(data, function(i,e)
是什么,他说这是回调然后我在网上搜索回调但不明白。我读到了这个 What are callback methods?什么是最简单的回调?
$.each(data, function(i,e){
console.log(e.id);
});
这里(data, function(i,e)
有什么用?
$.ajax({
type: "GET",
url: pbxApi+"/confbridge_participants/conference_participants.json?cid="+circle,
dataType: "jsonp",
jsonpCallback: 'callback',
contentType: "application/javascript",
success: function(data) {
console.log(data);
}
});
回调函数是作为参数传递给另一个函数的函数,回调函数在另一个函数内部被调用(或执行)。 像这样
(data, function(i,e)
我们可以像变量一样传递函数,return 在函数中传递它们,并在其他函数中使用它们。当我们将回调函数作为参数传递给另一个函数时,我们只是在传递函数定义。
注意回调函数不会立即执行。它在包含函数主体内的某个指定点“回调”。欲了解更多信息 Refer Here
一个被回调的回调方法。
谁给你回电话了?
你的框架回调它。
为什么会回调?
因为你要求它被回调,因为你想在发生某些事情时做一些处理。
例子
您正在进行一些处理,但不知道何时完成。您提供一个回调,然后继续其他一些工作。您的回调函数将被回调以告诉您处理已完成,您现在可以做一些事情了。
您想知道某个控件何时触发某个事件,以便您可以进行一些处理。您提供一个回调函数作为事件处理程序。
您对框架完成的默认处理不满意并想覆盖该处理,您提供回调,框架回调它以使用您自己的处理。
所以,一般来说:您要求 component/framework 调用您提供的方法。你永远不会从你的代码中调用提供的方法,其他人会回调它。
正常情况下,JavaScript条语句是逐行执行的。但是,有了效果,即使效果没有完成,下一行代码也可以是运行。这可能会产生错误。
为防止这种情况,您可以创建一个回调函数。
当前效果完成后执行回调函数
例如,这是一个回调函数:
$("button").click(function(){
$("p").hide("slow", function(){
alert("The paragraph is now hidden");
});
});
在这种情况下,函数 hide 将在该警报之前执行,这正是我们想要的。
另一方面,如果您不使用回调函数,请这样说:
$("button").click(function(){
$("p").hide(1000);
alert("The paragraph is now hidden");
});
在这种情况下,alert 甚至会在函数 hide 执行之前执行。这是回调函数在Javascript.
中的典型用法回调函数是您指定给现有 function/method 的函数,在操作完成、需要额外处理等时调用
*这里有一些小东西可以让你更好地理解回调:
Guy 1 到 Guy 2:嘿伙计,我想在用户点击那里时做点什么,发生这种情况时给我回电话好吗?
当用户点击此处时,小伙子 2 给小伙子 1 回电话。*