search
HomeWeb Front-endVue.jsWhat is the usage of await in vue?

In vue, await means waiting. The await keyword can only be placed in async functions. Use of await with async is equivalent to turning an asynchronous function into a synchronization. await will wait for the following expression. The next step is executed only after the result is returned.

What is the usage of await in vue?

The operating environment of this article: Windows 10 system, Vue version 2.9.6, DELL G3 computer.

What is the usage of await in vue

Let’s talk about the usage of async first. It is placed in front of the function as a keyword to indicate that the function is an asynchronous function, because async means asynchronous , an asynchronous function means that the execution of the function will not block the execution of the following code. Write an async function

async function timeout() {
  return 'hello world';
}

The syntax is very simple. Just add the async keyword in front of the function to indicate that it is asynchronous. How to call it? The async function is also a function. We can use it how we usually use the function. Just call it directly with parentheses. In order to show that it does not block the execution of the code behind it, we add the sentence

console.log;
async function timeout() {
    return 'hello world'
}
timeout();
console.log('虽然在后面,但是我先执行');

after the async function call. Open In the browser console, we see

The async function timeout is called, but there is no output. It should not return 'hello world'. Don't worry, take a look at what the timeout() execution returns? Change the timeout() statement above to console.log(timeout())

async function timeout() {
    return 'hello world'
}
console.log(timeout());
console.log('虽然在后面,但是我先执行');

Continue to look at the console

What is the usage of await in vue?

It turns out that the async function returns a Promise object, if we want to get the promise return value, we should use the then method and continue to modify the code

async function timeout() {
    return 'hello world'
}
timeout().then(result => {
    console.log(result);
})
console.log('虽然在后面,但是我先执行');

Look at the console

What is the usage of await in vue?

## We get "hello world', At the same time, the execution of timeout does not block the execution of the following code, which is consistent with what we just said.

At this time, you may notice that the Promise in the console has a resolved, which is the internal implementation of the async function Principle. If there is a value returned in the async function, when the function is called, the Promise.solve() method will be called internally to convert it into a promise object as a return, but what if an error is thrown internally in the timeout function? Then it will be called Promise.reject() returns a promise object, then modify the timeout function

async function timeout(flag) {
    if (flag) {
        return 'hello world'
    } else {
        throw 'my god, failure'
    }
}
console.log(timeout(true))  // 调用Promise.resolve() 返回promise 对象。
console.log(timeout(false)); // 调用Promise.reject() 返回promise 对象。

The console is as follows:

What is the usage of await in vue?

If an error is thrown inside the function, promise The object has a catch method for capturing.

timeout(false).catch(err => {
    console.log(err)
})

The async keyword is almost there, let’s consider the await keyword again. await means waiting, so what does it wait for, and what follows it? In fact, it can be followed by Put any expression, but we are more likely to put an expression that returns a promise object. Note that the await keyword can only be placed in the async function

Now write a function and let it return the promise object. This function The function is to multiply the value by 2 after 2s

// 2s 之后返回双倍的值
function doubleAfter2seconds(num) {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve(2 * num)
        }, 2000);
    } )
}

Now write an async function so that you can use the await keyword. What is placed after await is an expression that returns the promise object, so you can write after it DoubleAfter2seconds function call

async function testResult() {
    let result = await doubleAfter2seconds(30);
    console.log(result);
}
testResult();

Open the console, and after 2 seconds, 60 is output.

Now let’s look at the execution process of the code, calling the testResult function, which encounters await, await representation, etc. After a while, the code pauses here and no longer executes downwards. What is it waiting for? Wait for the subsequent promise object to complete execution, then get the value of promise resolve and return. After getting the return value, it continues to execute downwards. . Specific to our code, after encountering await, the code pauses execution and waits for doubleAfter2seconds(30) to complete execution. The promise returned by doubleAfter2seconds(30) begins to execute. After 2 seconds, the promise resolves and returns a value of 60. This At this time, await gets the return value 60, and then assigns it to result. After the pause ends, the code begins to continue execution and executes the console.log statement.

With this function, we may not see the role of async/await. What if we want to calculate the values ​​of 3 numbers and then output the obtained values?

async function testResult() {
    let first = await doubleAfter2seconds(30);
    let second = await doubleAfter2seconds(50);
    let third = await doubleAfter2seconds(30);
    console.log(first + second + third);
}

After 6 seconds, the console outputs 220. We can see that writing asynchronous code is just like writing synchronous code, and there is no callback area anymore.

Note:

async and await are based on promise. Functions using async will always return a promise object. It's important to remember that this may be a common place for you to make mistakes.

When using await we pause the function, not the entire code.

async and await are non-blocking.

You can still use Promise such as Promise.all().

[Related recommendations: "

vue.js Tutorial"]

The above is the detailed content of What is the usage of await in vue?. For more information, please follow other related articles on the PHP Chinese website!

Statement
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
Why Does Vue.js Use a Virtual DOM Instead of Direct DOM Manipulation?Why Does Vue.js Use a Virtual DOM Instead of Direct DOM Manipulation?May 16, 2025 am 12:05 AM

Vue.js uses virtual DOM instead of directly operating DOM, in order to improve performance and development efficiency. 1) Virtual DOM is calculated through diff algorithm to minimize DOM operations and improve performance. 2) Simplify development, developers do not need to deal with DOM complexity. 3) Component reuse and combination are more efficient. The working principle of virtual DOM is to generate a comparison between the new tree and the old tree, update only the difference part, and reduce the number of DOM operations.

What Happens When the Vue.js Virtual DOM Detects a Change?What Happens When the Vue.js Virtual DOM Detects a Change?May 14, 2025 am 12:12 AM

WhentheVue.jsVirtualDOMdetectsachange,itupdatestheVirtualDOM,diffsit,andappliesminimalchangestotherealDOM.ThisprocessensureshighperformancebyavoidingunnecessaryDOMmanipulations.

How Accurate Is It to Think of Vue.js's Virtual DOM as a Mirror of the Real DOM?How Accurate Is It to Think of Vue.js's Virtual DOM as a Mirror of the Real DOM?May 13, 2025 pm 04:05 PM

Vue.js' VirtualDOM is both a mirror of the real DOM, and not exactly. 1. Create and update: Vue.js creates a VirtualDOM tree based on component definitions, and updates VirtualDOM first when the state changes. 2. Differences and patching: Comparison of old and new VirtualDOMs through diff operations, and apply only the minimum changes to the real DOM. 3. Efficiency: VirtualDOM allows batch updates, reduces direct DOM operations, and optimizes the rendering process. VirtualDOM is a strategic tool for Vue.js to optimize UI updates.

Vue.js vs. React: Scalability and MaintainabilityVue.js vs. React: Scalability and MaintainabilityMay 10, 2025 am 12:24 AM

Vue.js and React each have their own advantages in scalability and maintainability. 1) Vue.js is easy to use and is suitable for small projects. The Composition API improves the maintainability of large projects. 2) React is suitable for large and complex projects, with Hooks and virtual DOM improving performance and maintainability, but the learning curve is steeper.

The Future of Vue.js and React: Trends and PredictionsThe Future of Vue.js and React: Trends and PredictionsMay 09, 2025 am 12:12 AM

The future trends and forecasts of Vue.js and React are: 1) Vue.js will be widely used in enterprise-level applications and have made breakthroughs in server-side rendering and static site generation; 2) React will innovate in server components and data acquisition, and further optimize the concurrency model.

Netflix's Frontend: A Deep Dive into Its Technology StackNetflix's Frontend: A Deep Dive into Its Technology StackMay 08, 2025 am 12:11 AM

Netflix's front-end technology stack is mainly based on React and Redux. 1.React is used to build high-performance single-page applications, and improves code reusability and maintenance through component development. 2. Redux is used for state management to ensure that state changes are predictable and traceable. 3. The toolchain includes Webpack, Babel, Jest and Enzyme to ensure code quality and performance. 4. Performance optimization is achieved through code segmentation, lazy loading and server-side rendering to improve user experience.

Vue.js and the Frontend: Building Interactive User InterfacesVue.js and the Frontend: Building Interactive User InterfacesMay 06, 2025 am 12:02 AM

Vue.js is a progressive framework suitable for building highly interactive user interfaces. Its core functions include responsive systems, component development and routing management. 1) The responsive system realizes data monitoring through Object.defineProperty or Proxy, and automatically updates the interface. 2) Component development allows the interface to be split into reusable modules. 3) VueRouter supports single-page applications to improve user experience.

What are the disadvantages of VueJs?What are the disadvantages of VueJs?May 05, 2025 am 12:06 AM

The main disadvantages of Vue.js include: 1. The ecosystem is relatively new, and third-party libraries and tools are not as rich as other frameworks; 2. The learning curve becomes steep in complex functions; 3. Community support and resources are not as extensive as React and Angular; 4. Performance problems may be encountered in large applications; 5. Version upgrades and compatibility challenges are greater.

See all articles

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

Video Face Swap

Video Face Swap

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

Hot Tools

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.