当前位置: 首页 > 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里面的东西。并且阻塞后面的东西继续执行

相关文章:

  • 2025年保安员证考试题库及答案
  • 【quantity】4 Duration 类型及其实现(time.rs)
  • C22-作业练习之最大公约数与最小公倍数
  • 如何开发动态贴纸功能?一体化美颜SDK的技术实现思路与实战方案
  • ZYNQ-自定义呼吸灯IP核以及PS-PL数据发送接收
  • Easy系列PLC高速计数器比较指令
  • 跟着文档学Vuex(一):什么是Vuex
  • 小智项目架构分析
  • uniapp实现统一添加后端请求Header方法
  • 如何评价 DeepSeek 的 DeepSeek-V3 模型?
  • OpenAvatarChat要解决UnicodeDecodeError
  • 云服务器主动防御策略与自动化防护(下)
  • MySQL最新版9.3.0安装教程
  • 【C++游戏引擎开发】第28篇:OpenGL异步加载纹理技术详解
  • Python分支结构全面解析与实战应用指南
  • n8n部署docker本地化备份和数据持久化和迁移问题
  • 苍穹外卖10
  • C语言-函数的嵌套调用,链式访问,函数的声明和函数的定义
  • pymsql(SQL注入与防SQL注入)
  • AI大模型:(二)2.4 微调自己的模型
  • 习近平就伊朗发生严重爆炸事件向伊朗总统佩泽希齐扬致慰问电
  • 金科股份:去年营收约275亿元,今年确保所有项目“零烂尾”
  • 西班牙葡萄牙突发全国大停电,欧洲近年来最严重停电事故何以酿成
  • 财政部农业农村司司长吴奇修接受纪律审查和监察调查
  • 巴防长称中俄可参与克什米尔恐袭事件国际调查,外交部回应
  • 李祥翔评《孔子哲学思微》︱理性秩序与美学秩序的碰撞