What is a callback function in javascript?
In JavaScript, a callback function is a function that is passed as a parameter. Function A is passed as a parameter (function reference) to another function B, and this function B executes function A. Function A is called a callback function; if there is no name (function expression), it is called an anonymous callback function.
The operating environment of this tutorial: windows7 system, javascript version 1.8.5, Dell G3 computer.
What is a callback function (Callback)
In JavaScript, functions are objects. Therefore, functions can take functions as parameters and can be returned by other functions. Functions that do this are called higher-order functions. Any function passed as a parameter is called a callback function.
The specific definition of the callback function is: function A is passed as a parameter (function reference) to another function B, and this function B executes function A. Let's just say function A is called a callback function. If there is no name (function expression), it is called an anonymous callback function.
Why do we need callbacks?
For one very important reason - JavaScript is an event-driven language. This means that the JavaScript will not continue waiting for a response, but will continue executing while listening for other events. Let's look at a basic example:
function first(){ console.log(1); } function second(){ console.log(2); } first(); second();
As you might expect, the function is executed first, then the second function, logging the following to the console:
// 1 // 2
Everything works so far very good.
But what if the function contains some code that cannot be executed immediately? For example, an API request where we have to send the request first and then wait for the response? To simulate this action, setTimeout will be used, which is a JavaScript function that will be called after a set time. We delay the function by 500 milliseconds to simulate an API request. Our new code will look like this:
function first(){ // Simulate a code delay setTimeout( function(){ console.log(1); }, 500 ); } function second(){ console.log(2); } first(); second();
It's not important to understand how setTimeout() works now. Importantly, you see that we moved console.log(1) to within the 500ms delay. So, what happens when we call a function?
first(); second(); // 2 // 1
Even though we called the first() function first, we printed its result after the second() function.
It's not that JavaScript isn't executing our functions in the order we want, it's that JavaScript isn't waiting for the response from first() before continuing with second().
Then why are you showing this? Because you can't call one function after another and expect them to execute in the correct order. Callbacks are a way to ensure that certain code does not execute until other code has finished executing.
Create a callback function
Okay, without further ado, let’s create a callback!
First, open your Chrome Developer Console (Windows: Ctrl Shift J) (Mac: Cmd Option J) and type the following function declaration in the console:
function doHomework(subject) { alert(`Starting my ${subject} homework.`); }
Now let’s Add a callback - As the last parameter in the doHomework() function, we can pass in a callback. Then define the callback function in the second parameter of the call to doHomework().
function doHomework(subject, callback) { alert(`Starting my ${subject} homework.`); callback(); } doHomework('math', function() { alert('Finished my homework'); });
As you can see, if you enter the above code in the console, you will receive two alerts: the "starting homework" alert, and then the "finished homework" alert.
However, it is not always necessary to define a callback function in our function call. They can be defined elsewhere in our code, like this:
function doHomework(subject, callback) { alert(`Starting my ${subject} homework.`); callback(); } function alertFinished(){ alert('Finished my homework'); } doHomework('math', alertFinished);
The result of this example is exactly the same as the previous example, but the settings are slightly different. We can see that during the doHomework() function call, we have passed the alertFinished function definition as a parameter.
A real example
We try to call Twitter’s API. When you make a request to an API, you must wait for a response before you can act on that response. This is a good example of a true callback. The request looks like this:
T.get('search/tweets', params, function(err, data, response) { if(!err){ // This is where the magic will happen } else { console.log(err); } })
T.get means we are sending a get request to Twitter
There are three parameters included in this request: "search/tweets" (this is the route of our request ), params (which are our search parameters) and an anonymous function (which is our callback).
Callbacks are important here because we need to wait for the server's response before we can continue executing the code. We don't know if our API request will succeed, so after sending the parameters to search/tweets via a get request, we wait. Once Twitter responds, our callback function will be called. Twitter will send us an error (error) object or a response object. Within the callback function, we can use an if() statement to determine if our request was successful and then act accordingly on the new data.
[Related recommendations: javascript learning tutorial]
The above is the detailed content of What is a callback function in javascript?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



How to use WebSocket and JavaScript to implement an online speech recognition system Introduction: With the continuous development of technology, speech recognition technology has become an important part of the field of artificial intelligence. The online speech recognition system based on WebSocket and JavaScript has the characteristics of low latency, real-time and cross-platform, and has become a widely used solution. This article will introduce how to use WebSocket and JavaScript to implement an online speech recognition system.

WebSocket and JavaScript: Key technologies for realizing real-time monitoring systems Introduction: With the rapid development of Internet technology, real-time monitoring systems have been widely used in various fields. One of the key technologies to achieve real-time monitoring is the combination of WebSocket and JavaScript. This article will introduce the application of WebSocket and JavaScript in real-time monitoring systems, give code examples, and explain their implementation principles in detail. 1. WebSocket technology

Introduction to how to use JavaScript and WebSocket to implement a real-time online ordering system: With the popularity of the Internet and the advancement of technology, more and more restaurants have begun to provide online ordering services. In order to implement a real-time online ordering system, we can use JavaScript and WebSocket technology. WebSocket is a full-duplex communication protocol based on the TCP protocol, which can realize real-time two-way communication between the client and the server. In the real-time online ordering system, when the user selects dishes and places an order

The writing methods of java callback function are: 1. Interface callback, define an interface, which contains a callback method, use the interface as a parameter where the callback needs to be triggered, and call the callback method at the appropriate time; 2. Anonymous inner class callback , you can use anonymous inner classes to implement callback functions to avoid creating additional implementation classes; 3. Lambda expression callbacks. In Java 8 and above, you can use Lambda expressions to simplify the writing of callback functions.

How to use WebSocket and JavaScript to implement an online reservation system. In today's digital era, more and more businesses and services need to provide online reservation functions. It is crucial to implement an efficient and real-time online reservation system. This article will introduce how to use WebSocket and JavaScript to implement an online reservation system, and provide specific code examples. 1. What is WebSocket? WebSocket is a full-duplex method on a single TCP connection.

JavaScript and WebSocket: Building an efficient real-time weather forecast system Introduction: Today, the accuracy of weather forecasts is of great significance to daily life and decision-making. As technology develops, we can provide more accurate and reliable weather forecasts by obtaining weather data in real time. In this article, we will learn how to use JavaScript and WebSocket technology to build an efficient real-time weather forecast system. This article will demonstrate the implementation process through specific code examples. We

JavaScript tutorial: How to get HTTP status code, specific code examples are required. Preface: In web development, data interaction with the server is often involved. When communicating with the server, we often need to obtain the returned HTTP status code to determine whether the operation is successful, and perform corresponding processing based on different status codes. This article will teach you how to use JavaScript to obtain HTTP status codes and provide some practical code examples. Using XMLHttpRequest

Introduction to the basic writing and usage of Java callback functions: In Java programming, the callback function is a common programming pattern. Through the callback function, a method can be passed as a parameter to another method, thereby achieving indirect call of the method. The use of callback functions is very common in scenarios such as event-driven, asynchronous programming and interface implementation. This article will introduce the basic writing and usage of Java callback functions, and provide specific code examples. 1. Definition of callback function A callback function is a special function that can be used as a parameter
