About JavaScript Async (Detailed Tutorial)
JavaScript asynchronous written for beginners, has certain reference value, interested friends can refer to it
One day, I suddenly wrote a method to call data from the background and display it on the front page , but the output result is always empty and undefined, and no data can be obtained. After searching for information from various sources, I discovered that I had fallen into the "pit" of JS asynchronous.
We often hear the concepts of single-threaded, multi-threaded, synchronized, and asynchronous, so what exactly are these things?
So let’s start with the concepts above
Basic understanding of single-threaded, multi-threaded, synchronized, and asynchronous
Each running program ( A process) has at least one thread, called the main thread. The main thread is created when starting the program and is used to execute the main function.
1. A single thread is a thread with only one main thread. The code runs sequentially from top to bottom. The main thread is responsible for executing all the code of the program (UI display and refresh, network requests, local storage, etc.) [One thread It’s a bit tiring to do all the things just thinking about it]
2. Multi-threading, as the name suggests, is a program with multiple threads that can be created by the user. Several processes created independently by users are child threads relative to the main thread. The child thread and the main thread are independent running units, and their respective executions do not affect each other, so they can be executed concurrently.
Do you feel a little dizzy just listening to these dry theories? Coincidentally, I was also dizzy when I first saw it.
In the process of looking for information, I found such a vivid metaphor from others.
For example, single-threading means that you go to the kitchen to cook and cook, and one person runs back and forth; multi-threading means that there are two people, one cooking alone and the other cooking.
That should make it easier to understand, right?
And what are synchronous and asynchronous?
We use a simple life example to illustrate.
You call to book a hotel and ask the staff if there is a room. At this time, the staff needs to check whether there is a room before they can answer you.
Synchronization means not hanging up the phone and waiting until the staff tells you whether there is a room.
Asynchronous means hanging up the phone, you go do other things, such as eating and drinking, and the staff will call you after finding the information.
So here comes our topic
What is the asynchronous operation of JS?
The execution environment of JS is single-threaded. That is to say, when the program is executed sequentially, only one task can be executed at a time. If the program wants to run further, it must wait for the current task to be executed. No matter how long the current task takes to execute (if the subsequent program rushes out, it will be really uncomfortable to wait).
In order to solve the uncomfortable blocking problem of subsequent programs. JavaScript has an asynchronous processing mode, which is actually delayed processing.
Let’s give an example to illustrate.
var getUserInfo = function () { $.getJSON("http://www.easy-mock.com/mock/5a09868228b23066479b8379/ajaxData/getUserInfo", function () { return data; }); } var data = getUserInfo(); renderUserInfo(data)
The getUserInfo function is called. It may take a lot of time to retrieve data from the background. This requires renderUserInfo to wait until the data is retrieved before it can run. Fortunately, JS has asynchronous operations. When fetching data, you don't need to wait for renderUserInfo to fetch the data, but execute it directly.
That being said, in what order are these two functions executed? Don't worry, let's debug it:
var getUserInfo = function () { console.log('aaa'); $.getJSON("http://www.easy-mock.com/mock/5a09868228b23066479b8379/ajaxData/getUserInfo", function () { console.log('bbb'); return data; }); } var data = getUserInfo(); console.log(data); console.log('ccc'); renderUserInfo(data);
I thought the output of sequential execution was "aaa", "bbb", "ccc", right?
However, things are not that simple. Let's take a look at the console output:
#The output results are not sequential.
That is to say, when the function is executed to getJSON to fetch data, the program does not wait for it to fetch the data before executing the next step. Instead, it skips the stage of fetching data and directly executes the output data. Therefore, data Also empty.
This is the asynchronous mechanism of JS.
The above is what I compiled for everyone. I hope it will be helpful to everyone in the future.
Related articles:
How to use JavaScript to achieve the left menu effect
How to achieve the select-all-cancel effect in JavaScript
How to call vuex to store interface data in vue.js
The above is the detailed content of About JavaScript Async (Detailed Tutorial). 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

Essential tools for stock analysis: Learn the steps to draw candle charts in PHP and JS. Specific code examples are required. With the rapid development of the Internet and technology, stock trading has become one of the important ways for many investors. Stock analysis is an important part of investor decision-making, and candle charts are widely used in technical analysis. Learning how to draw candle charts using PHP and JS will provide investors with more intuitive information to help them make better decisions. A candlestick chart is a technical chart that displays stock prices in the form of candlesticks. It shows the stock price

Face detection and recognition technology is already a relatively mature and widely used technology. Currently, the most widely used Internet application language is JS. Implementing face detection and recognition on the Web front-end has advantages and disadvantages compared to back-end face recognition. Advantages include reducing network interaction and real-time recognition, which greatly shortens user waiting time and improves user experience; disadvantages include: being limited by model size, the accuracy is also limited. How to use js to implement face detection on the web? In order to implement face recognition on the Web, you need to be familiar with related programming languages and technologies, such as JavaScript, HTML, CSS, WebRTC, etc. At the same time, you also need to master relevant computer vision and artificial intelligence technologies. It is worth noting that due to the design of the Web side

How to use PHP and JS to create a stock candle chart. A stock candle chart is a common technical analysis graphic in the stock market. It helps investors understand stocks more intuitively by drawing data such as the opening price, closing price, highest price and lowest price of the stock. price fluctuations. This article will teach you how to create stock candle charts using PHP and JS, with specific code examples. 1. Preparation Before starting, we need to prepare the following environment: 1. A server running PHP 2. A browser that supports HTML5 and Canvas 3

With the rapid development of Internet finance, stock investment has become the choice of more and more people. In stock trading, candle charts are a commonly used technical analysis method. It can show the changing trend of stock prices and help investors make more accurate decisions. This article will introduce the development skills of PHP and JS, lead readers to understand how to draw stock candle charts, and provide specific code examples. 1. Understanding Stock Candle Charts Before introducing how to draw stock candle charts, we first need to understand what a candle chart is. Candlestick charts were developed by the Japanese

Concurrent and Asynchronous Programming Concurrent programming deals with multiple tasks executing simultaneously, asynchronous programming is a type of concurrent programming in which tasks do not block threads. asyncio is a library for asynchronous programming in python, which allows programs to perform I/O operations without blocking the main thread. Event loop The core of asyncio is the event loop, which monitors I/O events and schedules corresponding tasks. When a coroutine is ready, the event loop executes it until it waits for I/O operations. It then pauses the coroutine and continues executing other coroutines. Coroutines Coroutines are functions that can pause and resume execution. The asyncdef keyword is used to create coroutines. The coroutine uses the await keyword to wait for the I/O operation to complete. The following basics of asyncio

PHP asynchronous coroutine development: accelerating data caching and read and write operations. In actual application development, data caching and read and write operations are common performance bottlenecks. In order to improve system efficiency and user experience, PHP asynchronous coroutine technology can be used to accelerate these operations. This article will introduce the basic concepts and principles of PHP asynchronous coroutines and provide specific code examples. 1. The concept and principle of asynchronous coroutine Asynchronous coroutine is an efficient concurrent programming technology that uses a single thread to achieve lightweight task scheduling and collaboration. Compared with traditional multi-threaded or multi-process concurrent programming

The relationship between js and vue: 1. JS as the cornerstone of Web development; 2. The rise of Vue.js as a front-end framework; 3. The complementary relationship between JS and Vue; 4. The practical application of JS and Vue.

How to use JS and Baidu Maps to implement map location information display function. With the development of the Internet, map applications have become an indispensable part of our lives. We often use map applications on our mobile phones to find destinations, route planning and other functions. In web development, we can also use JS and Baidu Map API to display map location information. This article will introduce in detail how to use JS and Baidu Map API to implement this function, and give specific code examples. First, we need to introduce Baidu Map’s J into the web page
