¿Qué es la función de devolución de llamada CallBack

Explicación uno, fácil de entender:
generalmente, cuando escribe un programa, llama a la API del sistema. Si invierte la relación, escribe una función y deja que el sistema llame a su función, entonces es una devolución de llamada, y la función la llama el sistema es la función de devolución de llamada.

Explicación dos, fácil de entender:
generalmente una función llama a otra función, la función llamada aparece en el cuerpo del método y la función de devolución de llamada es más especial, aparece en la lista de parámetros. En otras palabras, al llamar, necesita Obtener esto (devolución de llamada ) funcionan desde otros lugares y lo pasan como parámetro.

Explicación tres, después de leer la respuesta más específica: la
función de devolución de llamada se llama función de devolución de llamada, de hecho, una mejor definición es la función "llamar después".

Permítanme explicar en términos humanos, una función de devolución de llamada es una función que se ejecutará inmediatamente después de que otra función termine de ejecutarse . Una función de devolución de llamada es una función pasada como parámetro a otra función de JavaScript. Esta función de devolución de llamada se ejecutará dentro de la función pasada.

Para citar una nota mejor en Stack Overflow:

Una función de devolución de llamada es una función que es: accesible por otra
función, y se invoca después de la primera función si esa primera
función se completa

Los siguientes dos ejemplos lo aclararán:

function greeting(name) {
    
    
  alert('Hello ' + name);
}
 
function processUserInput(callback) {
    
    
  var name = prompt('请输入你的名字。');
  callback(name);
}
 
processUserInput(greeting);

El ejemplo anterior es una devolución de llamada sincrónica, que se ejecuta inmediatamente.

Sin embargo, debe tenerse en cuenta que las funciones de devolución de llamada se utilizan a menudo para continuar realizando una operación completada de forma asincrónica y se denominan devoluciones de llamada asincrónicas.

otro ejemplo:

// A function which accepts another function as an argument
// (and will automatically invoke that function when it completes - note that there is no explicit call to callbackFunction)
function printANumber(number, callbackFunction) {
    
    
    console.log("The number you provided is: " + number);
    setTimeout(function() {
    
     callbackFunction(); }, 3000); 
    console.log("second");
}
 
// a function which we will use in a driver function as a callback function
function printFinishMessage() {
    
    
    console.log("I have finished printing numbers.");
}
 
// Driver method
 
printANumber(6, printFinishMessage);

Después de ejecutar la función printANumber, el resultado:

> "The number you provided is: 6"
> "second"
> "I have finished printing numbers."

Puede ver que "El número que proporcionó es: 6" y "segundo" se imprimen primero, y "He terminado de imprimir números" se imprime después de un retraso de tres segundos.

Entonces, podemos pensar que la ejecución real de callbackFunction se ejecuta después de que se ejecuta el cuerpo del método printANumber del cuerpo de la función principal.

Esto es de gran importancia para nosotros. Por ejemplo, cuando llamamos a una API externa en una función relacionada con una página web, debemos ejecutarla de forma asincrónica y luego pasar la función de devolución de llamada. Si se ejecuta de forma sincrónica, se está bloqueando. Necesitamos esperar el resultado de llamar a la API antes de ejecutar. La última función, esto puede hacer que la carga de la interfaz se congele y se demore, y el uso de la función de devolución de llamada para ejecutar de forma asincrónica no afectará la ejecución de nuestra función posterior y no es bloqueo.

Supongo que te gusta

Origin blog.csdn.net/nikyae/article/details/111239334
Recomendado
Clasificación