Table of Contents
What is a callback function (Callback)
Why do we need callbacks?
Create a callback function
A real example
Home Web Front-end Front-end Q&A What is a callback function in javascript?

What is a callback function in javascript?

Jun 29, 2021 pm 05:58 PM
javascript Callback

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.

What is a callback function in javascript?

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();
Copy after login

As you might expect, the function is executed first, then the second function, logging the following to the console:

// 1
// 2
Copy after login

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();
Copy after login

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
Copy after login

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.`);
}
Copy after login

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');
});
Copy after login

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);
Copy after login

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);
  }
})
Copy after login

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!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to implement an online speech recognition system using WebSocket and JavaScript How to implement an online speech recognition system using WebSocket and JavaScript Dec 17, 2023 pm 02:54 PM

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 implementing real-time monitoring systems WebSocket and JavaScript: key technologies for implementing real-time monitoring systems Dec 17, 2023 pm 05:30 PM

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

How to use JavaScript and WebSocket to implement a real-time online ordering system How to use JavaScript and WebSocket to implement a real-time online ordering system Dec 17, 2023 pm 12:09 PM

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

How to write java callback function How to write java callback function Jan 09, 2024 pm 02:24 PM

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 implement an online reservation system using WebSocket and JavaScript How to implement an online reservation system using WebSocket and JavaScript Dec 17, 2023 am 09:39 AM

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 forecasting system JavaScript and WebSocket: Building an efficient real-time weather forecasting system Dec 17, 2023 pm 05:13 PM

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

Simple JavaScript Tutorial: How to Get HTTP Status Code Simple JavaScript Tutorial: How to Get HTTP Status Code Jan 05, 2024 pm 06:08 PM

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

Basic syntax and application of callback functions in Java Basic syntax and application of callback functions in Java Jan 30, 2024 am 08:12 AM

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

See all articles