首页 > 其他分享 >async await执行顺序

async await执行顺序

时间:2024-09-24 10:20:11浏览次数:3  
标签:顺序 console log await Promise async 执行

async await执行顺序

async/await 是用于编写异步代码的语法糖,它允许你以类似于同步代码的方式写异步操作。async 关键字声明的函数会返回一个 Promise,而 await 关键字用于等待一个 Promise 完成。

执行顺序如下:

  1. 调用 async 函数。

  2. 函数会继续执行,遇到 await 时,控制权会交回给调用者。

  3. 等待的表达式(通常是一个返回 Promise 的表达式)开始执行。

  4. 一旦 Promise 解决(fulfilled),函数会从暂停的地方恢复,继续执行后续的操作。

下面是一个简单的例子:



async function firstAsync() {

console.log('First async');

return 'First result';

}

async function secondAsync() {

console.log('Second async');

return 'Second result';

}

async function asyncFunction() {

const firstResult = await firstAsync();

console.log(firstResult);

const secondResult = await secondAsync();

console.log(secondResult);

}

asyncFunction();

执行顺序如下:

  1. 调用 asyncFunction 函数。

  2. 首先执行 firstAsync,打印出 "First async"。

  3. 遇到 await firstAsync(),控制权交回给 asyncFunction 的调用者。

  4. 执行 secondAsync,打印出 "Second async"。

  5. firstAsync 的 Promise 解决,继续执行 console.log(firstResult),打印出 "First result"。

  6. 遇到 await secondAsync(),控制权再次交回给 asyncFunction 的调用者。

  7. secondAsync 的 Promise 解决,继续执行 console.log(secondResult),打印出 "Second result"。

综上所述,async/await 的执行顺序是按照函数中的顺序执行的,每遇到 await 关键字就会暂停当前函数的执行,等待 Promise 完成后再恢复执行。

标签:顺序,console,log,await,Promise,async,执行
From: https://blog.csdn.net/galaxyJING/article/details/142385937

相关文章

  • 从0到1开始学习网络安全,按照这个顺序就对了!
    从零开始学习网络安全是一个系统化的过程,它涉及到多个层面的技术和理论知识。网络安全的学习顺序可以按照由浅入深、逐步递进的原则进行,以下是一个建议的网络安全学习路径:1.基础知识阶段:-计算机网络基础:理解网络架构、TCP/IP协议栈、OSI七层模型、数据链路层到应用层的......
  • C++类成员变量初始化顺序
    C++类成员变量初始化顺序类成员初始化顺序与其在类中声明顺序一致。比如classDemo{public: Demo(intd) :_d1{d},_d2{_d1+10} { } voidshow(){ std::cout<<"d1="<<_d1<<std::endl; std::cout<<"d2="<<_d2<<std:......
  • 面试:多线程顺序打印
            在多线程中有多种方法让线程按特定顺序执行,可以用线程类的join()方法在一个线程中启动另一个线程,另外一个线程完成该线程继续执行。比如说:使用join方法,T3调用T2,T2调用T1,这样就能确保T1就会先完成而T3最后完成。        定义三个类,分别实现Runnable接......
  • 通过组合使用这些工具,您可以实现灵活的 WIM 备份和恢复方案。每个工具都有其特定功能,
    使用Windows的WIM(WindowsImagingFormat)备份和恢复可以通过命令行工具DISM(DeploymentImagingServiceandManagementTool)来实现。以下是一些常用的WIM备份和恢复命令参数示例:1. 备份(Capture)使用dism命令将系统映像备份为WIM文件:bashCopyCodedism/Cap......
  • C++ 异步 async future 等
    async和future这个和C#的Task有点像。#include<iostream>#include<string>#include<memory>#include<future>#include<thread>usingnamespacestd;intcalculate(){std::this_thread::sleep_for(std::chrono::seconds(2));......
  • handycontrol的CheckComboBox的SelectedItems顺序
    【实现效果】【问题】handycontrol的CheckComboBox没有SelectedItems这一项:当保存下来的选中项,需要在下次打开的时候加载,而handycontrol的CheckComboBox没有SelectedItems,于是就先解决如何拿到绑定SelectedItems,通过附加属性的方式:WPF使用附加属性来绑定ListBox的SelectedIt......
  • 数据结构: 顺序表(Seqlist篇) 手把手带你了解数据结构~
    文章目录前言一、顺序表的概念1.顺序表是什么?2.顺序表和数组的区别二、顺序表的实现1.顺序表的结构(1).静态顺序表(2).动态顺序表2.顺序表的初始化3.顺序表的销毁4.顺序表尾插5.顺序表头插6.顺序表尾删7.顺序表头删8.顺序表获取元素下标9.顺序表任意位置插入......
  • 数据结构:顺序表
    顺序表顺序表的概念与结构静态顺序表动态顺序表动态顺序表的实现SeqList.h的创建测试文件(test.c)初始化动态顺序表(LS_Init)动态顺序表的销毁(LS_Destry)检查动态内存空间是否已满(SL_CheckCapacity)动态顺序表打印有效数据(SL_Print)在末尾存放数据(SL_PushBack)在起始位置添加有......
  • 8577 合并顺序表
    ###思路1.读取顺序表A和B的元素个数和元素。2.使用双指针法合并两个有序顺序表A和B到新的顺序表C。3.输出顺序表A、B和合并后的顺序表C。###伪代码1.读取顺序表A的元素个数和元素。2.读取顺序表B的元素个数和元素。3.初始化两个指针分别指向顺序表A和B的起始位......
  • C++顺序结构(2)
    一、变量、赋值语句与表达式1、天安门广场在北京市中心,它南北长880米,东西宽500米,试编一程序,计算天安门广场面积是多少平方米。点击查看代码1//试编程,计算天安门广场的面积是多少平方米2#include<iostream>//包含输入输出流头文件iostream3usingnamespacestd;......