什么是回调函数

What are callback function?

本文关键字:函数 回调 什么      更新时间:2023-09-26

我问一个朋友,问这段代码中的(data, function(i,e)是什么,他说这是回调,然后我搜索互联网关于回调,不理解它。我读过这个什么是回调方法?什么是最简单的回调?

 $.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);
        }
        });

回调函数是指定给现有函数/方法的函数,在操作完成、需要额外处理等情况下调用。

*这里有一些东西可以让你更好地理解回调:

Guy 1对Guy 2说:嘿,伙计,我想做点什么当用户点击那里的时候,当它发生的时候给我回电话,好吗?当用户点击此处时,Guy 2会回叫Guy 1 *

一个被回调的方法

谁叫它回你?

你的框架调用它。

为什么要回调呢?

因为你要求它被回调因为你想在发生某些事情时做一些处理

  1. 你正在做一些处理,不知道什么时候完成。您提供一个回调,然后继续执行其他一些工作。你的回调函数将被回调,告诉你处理已经完成,你现在可以在你的终端做一些事情了。

  2. 你想知道某个控件何时触发某个事件,以便你可以做一些处理。提供回调函数作为事件处理程序。

  3. 你对框架的默认处理不满意,想要覆盖这个处理,你提供一个回调,框架调用它来使用你自己的处理。

所以,一般来说:你要求组件/框架调用你提供的方法。你永远不会从你的代码中调用那个提供的方法,其他人会把它调用回来。

回调函数是作为参数传递给另一个函数的函数,该回调函数在另一个函数内部调用(或执行)。像这样

(data, function(i,e)

我们可以像传递变量一样传递函数,在函数中返回它们,并在其他函数中使用它们。当我们将回调函数作为参数传递给另一个函数时,我们只是传递了函数定义。

注意回调函数不会立即执行。它在包含函数体的某个指定点被"回调"。更多信息请参考

通常,JavaScript语句是逐行执行的。但是,对于效果,即使效果还没有完成,下一行代码也可以运行。这会产生错误。

为了避免这种情况,你可以创建一个回调函数。

回调函数在当前效果结束后执行。

例如,这是一个回调函数:

$("button").click(function(){
    $("p").hide("slow", function(){
        alert("The paragraph is now hidden");
    });
});

在这种情况下,函数hide将在alert之前执行,这正是我们想要的。

另一方面,如果你不使用回调函数,这样写:

$("button").click(function(){
    $("p").hide(1000);
    alert("The paragraph is now hidden");
});

在这种情况下,alert将在函数hide执行之前执行。这是Javascript中回调函数的典型用法