What is the usage of async in nodejs
In nodejs, the async keyword can be used to define a function. When the async function is called, a Promise will be returned. When the async function returns a value, the Promise will be realized. When the function throws When an error occurs, the Promise is rejected.
The operating environment of this tutorial: windows10 system, nodejs version 12.19.0, DELL G3 computer.
What is the usage of async in nodejs
1 What is the async function
Using the async function, you can use Asynchronous code with Promises is written just like synchronous code. Once you define a function using the async keyword, you can use the await keyword within the function. When an async function is called, it returns a Promise. When the async function returns a value, the Promise is fulfilled; if an error is thrown in the function, the Promise is rejected.
await keyword can be used to wait for a Promise to be resolved and return its realized value. If the value passed to await is not a Promise, it converts the value to a resolved Promise.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
2 Migrating to async functions
If your Node.js application is already using Promise, then you only need to rewrite the original chain call to await your Promise.
If your application is still using callback functions, you should gradually switch to using async functions. You can use this new technology when developing some new features. When you have to call some old code, you can simply wrap it into a Promise and call it in the new way.
To do this, you can use the built-in util.promisify method:
1 2 3 4 5 6 7 8 9 10 |
|
3 Best practices for Async functions
3.1 Using async functions in express
express originally supports Promise, so it is relatively simple to use async functions in express:
1 2 3 4 5 6 7 8 9 |
|
But as Keith Smith pointed out, the above example has a serious problem - if The Promise is eventually rejected. Since there is no error handling here, the express route processor will be suspended.
To fix this problem, you should wrap your asynchronous handler in a function that handles errors:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
3.2 Parallel execution
For example, if you are Write a program where an operation requires two inputs, one from the database and the other from an external service:
1 2 3 4 5 |
|
What happens in this example?
Your code will first get the user,
then get the product,
and finally make the payment.
As you can see, since there is no interdependence between the first two steps, you can actually execute them in parallel. Here, you should use the Promise.all method:
1 2 3 4 5 6 7 |
|
And sometimes, you only need the return value of the fastest resolved Promise - in this case, you can use the Promise.race method.
3.3 Error Handling
Consider the following example:
1 2 3 4 5 6 7 |
|
When executing this code, you will see a message similar to this:
(node:69738) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: error
(node:69738) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
In newer Node.js versions, if a Promise is rejected and not handled, the entire Node.js process will be Interrupt. Therefore, you should use try-catch when necessary:
1 2 3 4 5 |
|
For more node-related knowledge, please visit: nodejs tutorial! !
The above is the detailed content of What is the usage of async in nodejs. 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

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

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



Node.js is a server-side JavaScript runtime, while Vue.js is a client-side JavaScript framework for creating interactive user interfaces. Node.js is used for server-side development, such as back-end service API development and data processing, while Vue.js is used for client-side development, such as single-page applications and responsive user interfaces.

Node.js can be used as a backend framework as it offers features such as high performance, scalability, cross-platform support, rich ecosystem, and ease of development.

To connect to a MySQL database, you need to follow these steps: Install the mysql2 driver. Use mysql2.createConnection() to create a connection object that contains the host address, port, username, password, and database name. Use connection.query() to perform queries. Finally use connection.end() to end the connection.

The following global variables exist in Node.js: Global object: global Core module: process, console, require Runtime environment variables: __dirname, __filename, __line, __column Constants: undefined, null, NaN, Infinity, -Infinity

There are two npm-related files in the Node.js installation directory: npm and npm.cmd. The differences are as follows: different extensions: npm is an executable file, and npm.cmd is a command window shortcut. Windows users: npm.cmd can be used from the command prompt, npm can only be run from the command line. Compatibility: npm.cmd is specific to Windows systems, npm is available cross-platform. Usage recommendations: Windows users use npm.cmd, other operating systems use npm.

The main differences between Node.js and Java are design and features: Event-driven vs. thread-driven: Node.js is event-driven and Java is thread-driven. Single-threaded vs. multi-threaded: Node.js uses a single-threaded event loop, and Java uses a multi-threaded architecture. Runtime environment: Node.js runs on the V8 JavaScript engine, while Java runs on the JVM. Syntax: Node.js uses JavaScript syntax, while Java uses Java syntax. Purpose: Node.js is suitable for I/O-intensive tasks, while Java is suitable for large enterprise applications.

Yes, Node.js is a backend development language. It is used for back-end development, including handling server-side business logic, managing database connections, and providing APIs.

Server deployment steps for a Node.js project: Prepare the deployment environment: obtain server access, install Node.js, set up a Git repository. Build the application: Use npm run build to generate deployable code and dependencies. Upload code to the server: via Git or File Transfer Protocol. Install dependencies: SSH into the server and use npm install to install application dependencies. Start the application: Use a command such as node index.js to start the application, or use a process manager such as pm2. Configure a reverse proxy (optional): Use a reverse proxy such as Nginx or Apache to route traffic to your application
