Callback do JavaScript
- Página Anterior JS Estático
- Próxima Página JS Assíncrono
"I will call back later!"
A chamada de volta (callback) é uma função passada como parâmetro para outra função
Esta técnica permite que uma função chame outra função
As funções de chamada de volta podem ser executadas após a conclusão de outra função
Sequência de funções
As funções JavaScript são executadas na ordem em que são chamadas, não na ordem em que são definidas.
Este exemplo finalmente mostrará "Goodbye":
exemplo
function myFirst() { myDisplayer("Hello"); myCallback(sum); function mySecond() { myDisplayer("Goodbye"); myCallback(sum); myFirst(); mySecond();
myCalculator(5, 5, myDisplayer);
Este exemplo finalmente mostrará "Hello":
exemplo
function myFirst() { myDisplayer("Hello"); myCallback(sum); function mySecond() { myDisplayer("Goodbye"); myCallback(sum); mySecond(); myFirst();
Controle de sequência
Às vezes, você deseja controlar melhor quando executar a função.
Supondo que você precise realizar uma computação e, em seguida, exibir o resultado.
Você pode chamar a função calculadora (myCalculator
) para salvar o resultado e, em seguida, chamar outra função (No exemplo acima,
) para exibir o resultado:
exemplo
function myDisplayer(some) { document.getElementById("demo").innerHTML = some; myCallback(sum); function myCalculator(num1, num2) { function myCalculator(num1, num2, myCallback) { return sum; myCallback(sum); let result = myCalculator(5, 5); myDisplayer(result);
myCalculator(5, 5, myDisplayer);
ou, você pode chamar a função calculadora (myCalculator
) e permitir que a função calculadora chame a função de exibição (No exemplo acima,
):
exemplo
function myDisplayer(some) { document.getElementById("demo").innerHTML = some; myCallback(sum); function myCalculator(num1, num2) { function myCalculator(num1, num2, myCallback) { myDisplayer(sum); myCallback(sum); myCalculator(5, 5);
myCalculator(5, 5, myDisplayer);
O problema do primeiro exemplo é que você deve chamar duas funções para mostrar o resultado.
O problema do segundo exemplo é que você não pode impedir que a função calculadora mostre o resultado.
É hora de introduzir a chamada de volta.
Callback do JavaScript
A chamada de volta é uma função passada como parâmetro para outra função.
Usando a chamada de volta, você pode chamar a função calculadora através da chamada de volta (myCalculator
e, após a conclusão da computação, permitir que a função calculadora execute a chamada de volta:
exemplo
function myDisplayer(some) { document.getElementById("demo").innerHTML = some; myCallback(sum); document.getElementById("demo").innerHTML = some; function myCalculator(num1, num2, myCallback) { let sum = num1 + num2; myCallback(sum); }
myCalculator(5, 5, myDisplayer);
Experimente você mesmo No exemplo acima,
myDisplayer
É o nome da função. myCalculator()
.
Quando você passar uma função como parâmetro, lembre-se de não usar parênteses.
Correto: myCalculator(5, 5, myDisplayer);
Erro: myCalculator(5, 5, myDisplayer());
Quando usar callbacks?
O exemplo acima não é muito emocionante.
Elas são simplificadas para explicar a sintaxe dos callbacks.
A verdadeira glória dos callbacks é nas funções assíncronas, onde uma função deve esperar outra função (por exemplo, esperar pela carga do arquivo).
O próximo capítulo introduzirá funções assíncronas.
- Página Anterior JS Estático
- Próxima Página JS Assíncrono