当前位置: 首页 > news >正文

await和async

a w a i t await await在等啥? a w a i t await await到底阻不阻塞?不阻塞主线程,那是怎么保证能拿到请求数据的? a s y n c async async返回是啥?那下面两段代码使用 a w a i t await await一样吗?

async function print(){return new Promise((resolve)=>{setTimeout(()=>{console.log("middle"); resolve()},3000) })
}

async function print(){ setTimeout(()=>{console.log("middle"); resolve()},3000)  
}

你要是能正确完整回答完上面的问题,那就不耽误大佬时间了~
下面依次来回答上面的问题吧。

  1. a s y n c async async返回的是什么?
    有同学会答,返回 p r o m i s e promise promise!那好的,看这个代码,这段代码的返回值实际上是Promise.resolve(undefined),因为原生异步 A P I API API(如 s e t T i m e o u t setTimeout setTimeout a d d E v e n t L i s t e n e r addEventListener addEventListener)不会自动返回 P r o m i s e Promise Promise,必须手动用 n e w P r o m i s e new\ Promise new Promise 包装。
async function print(){ setTimeout(()=>{console.log("middle"); resolve()},3000)  
}

2. a w a i t await await的阻塞问题,看这个代码:

async function taskA() {console.log("A1");await delay(2000); // 等待2秒console.log("A2");
}
async function taskB() {console.log("B1");await delay(1000); // 等待1秒console.log("B2");
}
// 同时启动两个任务
taskA(); 
taskB();

这段代码里面 t a s k A taskA taskA t a s k B taskB taskB的执行不分先后,这是所谓的不阻塞线程,也就是函数里的 a w a i t await await没阻塞到外面的。函数里的 a w a i t await await依旧具有阻塞的特点。
3. 用了 a w a i t await await之后,后面的代码都会被包成.then里面的东西。并且阻塞后面的东西继续执行

http://www.xdnf.cn/news/196759.html

相关文章:

  • (28)VTK C++开发示例 ---添加坐标轴
  • std::print 和 std::println
  • echarts自定义图表--仪表盘
  • 【机器学习】人工智能在电力电子领域的应用
  • 反射与注解实现动态功能扩展案例-插件系统
  • 模型上下文协议(MCP)深度解析:大模型从“思考者“进化为“行动者“
  • 总账主数据——Part 2 科目-4
  • 优先队列和单调队列(双端队列实现的)
  • stm32wb55rg (1) 基于IAR 创建stm32 工程模板
  • 序列密码算法ShanLooog512设计原理详解
  • DeepSearch复现篇:QwQ-32B ToolCall功能初探,以Agentic RAG为例
  • React速通笔记
  • 初识Python
  • 【Keil5-开发指南】
  • Java实现基数排序算法
  • 机器学习day2
  • 深入理解链表:从基础操作到高频面试题解析
  • 省哲学社科基金项目申请书(论证活页)模版框架参考
  • 013几何数学——算法备赛
  • web技术与Nginx网站服务
  • word2Vec与GloVe的区别
  • LeetCode 1482. 制作 m 束花所需的最少天数
  • 【SpringMVC】详解参数传递与实战指南
  • MANIPTRANS:通过残差学习实现高效的灵巧双手操作迁移
  • 策略模式:灵活的算法封装与切换
  • 实验研究 | 千眼狼高速摄像机驱动精密制造创新
  • 9.学习笔记-springboot(P90-P104)
  • Spring MVC 基础 - 从零构建企业级Web应用
  • 从零到一MCP详细教程——入门
  • 深度相机(一)——深度相机模型及用途介绍