async/await 用法

article/2025/9/14 8:35:13

目录

  • 1、 async 函数
    • 1.1、例子:async函数不写返回值
    • 1.2、例子:async函数写了返回值,返回值为一般数据
    • 1.3、例子:async函数写了返回值,返回值为一个promise对象
  • 2、await 函数
    • 2.1、例子:await 右侧表达式是promise对象
    • 2.2、例子:await 右侧表达式是一般数据(非promise对象)
    • 2.3、 await 阻塞

1、 async 函数

  • 函数调用的结果永远是一个promise对象
  • promise对象的结果由async函数执行的结果决定

1.1、例子:async函数不写返回值

// 定义一个async函数fn,不写返回值
async function fn() {}// 打印函数调用的结果
console.log(fn());

打印结果为一个promise对象:
在这里插入图片描述

1.2、例子:async函数写了返回值,返回值为一般数据

// 定义一个async函数fn,返回值为123
async function fn() {return 123;
}// 打印函数调用的结果
console.log(fn());

打印结果仍然是一个promise对象:
在这里插入图片描述

1.3、例子:async函数写了返回值,返回值为一个promise对象

// 定义一个async函数fn,返回值是一个promise对象
async function fn() {return new Promise((resolve) => {resolve("哈哈哈");});
}// 打印函数调用的结果
console.log(fn());

打印结果仍然是一个promise对象:
在这里插入图片描述

2、await 函数

  • await 右侧的表达式一般是promise对象,但也可以是其他的值
  • 如果右侧的表达式是一个promise对象,那么await返回的是promise成功的值
  • 如果右侧的表达式是其他值,直接将此值作为await的返回值
  • await 必须写在async函数里,但是async函数里可以没有await
  • 如果await的promise失败了,就会抛出异常,那么要用try…catch捕获处理

2.1、例子:await 右侧表达式是promise对象

let p = new Promise((resolve) => {resolve(10);
});async function fn() {let result = await p;console.log("result--", result);
}fn();

打印结果是:10

在这里插入图片描述

2.2、例子:await 右侧表达式是一般数据(非promise对象)

async function fn() {let result = await 20;console.log("result--", result);
}fn();

打印结果是:20

在这里插入图片描述

2.3、 await 阻塞

await 后面的代码要等到await执行完以后才会执行

let p = new Promise((resolve) => {setTimeout(() => {resolve("我是定时器里的");}, 2000);
});async function fn() {console.log("aa");let result = await p;console.log(result);console.log("bb");
}fn();

打印结果为:打印bb的代码在await函数后面,被阻塞了
在这里插入图片描述
执行fn函数,先立马打印出 aa,等两秒以后打印出 “我是定时器里的”,然后接着打印出来 bb


http://chatgpt.dhexx.cn/article/BFxJqxcu.shtml

相关文章

c# async/await的用法

转于:https://www.cnblogs.com/liqingwen/p/5831951.html 关键: 异步方法:在执行完成前立即返回调用方法,在调用方法继续执行的过程中完成任务。 async/await 结构可分成三部分: (1)调用方法&a…

async/await详解

🐱个人主页:不叫猫先生 🙋‍♂️作者简介:专注于前端领域各种技术,热衷分享,期待你的关注。 💫系列专栏:vue3从入门到精通 📝个人签名:不破不立 &#x1f36c…

C# 中的Async 和 Await 的用法详解

1 众所周知C#提供Async和Await关键字来实现异步编程。在本文中,我们将共同探讨并介绍什么是Async 和 Await,以及如何在C#中使用Async 和 Await。 写在前面 自从C# 5.0时代引入async和await关键字后,异步编程就变得流行起来。尤其在现在的.NET…

async、await

词法定义 async async 是“异步”的简写, async 用于申明一个异步的 function await await 可以认为是 async wait 的简写,await 用于等待一个异步方法执行完成。 借检https://www.cnblogs.com/airen123/p/9543490.html 特点: asayc的用…

C# 彻底搞懂async/await

关键: 异步方法:在执行完成前立即返回调用方法,在调用方法继续执行的过程中完成任务。 async/await 结构可分成三部分: (1)调用方法:该方法调用异步方法,然后在异步方法执行其任务的…

async、await总结

一、async用法 async作为一个关键字放到函数前面,用于表示函数是一个异步函数。异步函数也就意味着该函数的执行不会阻塞后面代码的执行。 异步函数语法很简单,就是在函数前面加上async 关键字,来表示它是异步的。 那怎么调用呢?a…

async和await

async和await 概念 先从字面意思来理解。async 是“异步”的简写,而 await 可以认为是 async wait 的简写。所以应该很好理解 async 用于申明一个 function 是异步的,而 await 用于等待一个异步方法执行完成。 另外还有一个很有意思的语法规定&#xff0…

被说一知半解,await不懂你别乱用

文章目录 1.前言2.await是否阻塞主线程?3.await是否同步?4.总结 1.前言 这篇文章我是不想写的,因为之前已经写过了(异步回调Async Await与Promise区别),此时此刻的心情是非常的不满,为什么呢&a…

async、await详解

一、async/await是什么? 简而言之, async用于申明一个function是异步的; 而await则可以认为是 async await的简写形式,是等待一个异步方法执行完成的。 二、async和await的基础使用 async/awiat的使用规则: async 表示这是一个a…

理解异步函数async和await的用法

定义 1. async 是异步的意思,await则可以理解为 async wait。所以可以理解async就是用来声明一个异步方法,而 await是用来等待异步方法执行 2. async作为一个关键字放在函数前面,表示该函数是一个异步函数,异步函数意味着该函数的…

(一)概述:NGS测序在病原微生物检测中的应用

❝ NGS 技术在临床上的应用逐步趋于成熟,从早期的肿瘤基因检测,到如今大热的微生物病原核酸检测,NGS 技术以其快速、准确和高分辨率的特点,发挥着无可替代的作用。 ❞ 微生物在地球上无处不在,从陆地到海洋&#xff0c…

肿瘤NGS测序公司生信工程师水平划分

生信工程师能力划分 1、大头兵(1)初级生信工程师工作职责任职要求 (2)中级生信工程师工作职责任职要求 (3)高级生信工程师工作职责任职要求 2、主管/经理职位描述任职要求 3、总监参考资料: 去年…

NGS数据分析实践:04. 准备测序数据

NGS数据分析实践:04. 准备测序数据 文接上篇:NGS数据分析实践:03. 涉及的常用数据格式[5] - vcf格式 本次NGS数据,采用多重PCR靶向扩增子测序技术,在Illunima Hiseq X Ten测序平台上进行双末端(paired-end…

NGS_panel的CAP认证学习笔记

对于基因的定义总体可以划分为两类 GAD: Gene associated with Mendelian disorder; GADs include genes that meet criteria for definitive, strong, or moderate evidence for association with disease as described by ClinGenGUS: Gene of uncertain significance; GUSs …

45万例患者基因检测显示:NGS很难检测出七分之一的致病变异

基于下一代测序(NGS)的临床基因测试越来越多地用于辅助诊断,针对该技术的临床应用有具体的指南,除了检测相对可靠的单核苷酸变异(SNVs)和微小插入缺失(indel),NGS也已经被…

R实战 | NGS数据时间序列分析(maSigPro)

masigpro 跟着Cell学作图 | 6.时间序列分析(Mfuzz包) 一个答疑教程。 maSigPro 流程 示例数据 #BiocManager::install(maSigPro) library(maSigPro) # 载入示例数据 data(data.abiotic) data.abiotic[1:5,1:5] data(edesign.abiotic) head(edesign.abiotic) > data.abiotic…

NGS数据分析实践:03. 涉及的常用数据格式[5] - vcf格式

NGS数据分析实践:03. 涉及的常用数据格式[5] - vcf格式 6. vcf格式6.1 vcf格式整体描述6.2 第8列INFO详解6.3 第9列FORMAT详解6.4 vcf文件简单解读 系列文章: 二代测序方法:DNA测序之靶向重测序 NGS数据分析实践:00. 变异识别的基…

生信小白学习日记Day4Day5——NGS基础 NGS分析注释(BWA软件)

2019年5月30日,晚上,心情变好,好几天没更新了,看到男朋友在学一款软件,我也近朱者赤,来继续注释Day2-2中NGS分析流程中的一个重要软件——BWA NGS基础 NGS分析注释 BWA 对应于NGS分析流程的这两步&…

NGS数据分析实践:00. 变异识别的基本流程

NGS数据分析实践:00. 变异识别的基本流程 变异识别过程可以分成3大块:1. 原始数据质控;2. 数据预处理;3. 变异识别。大致可以细分为6个部分:(1) 原始测序数据的质控;(2) read比对,排序和标记PCR…

如何用软件模拟NGS数据

如何用软件模拟NGS数据 为了评价一个工具的性能,通常我们都需要先模拟一批数据。这样相当于有了参考答案,才能检查工具的实际表现情况。因此对于我们而言,面对一个新的功能,可以先用模拟的数据测试下不同工具的优缺点。有如下几个…