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

前端面试:promise...then与asnyc ...await

JavaScript是单线程,没有异步编程的概念,浏览器 / Node 提供了 异步 API(比如定时器、网络请求) 。为了让代码 “不阻塞”,早期用 回调函数 处理异步结果,我们可以通过函数回调机制来实现异步编程。

promise...then...链式调用避免层层嵌套。async...await是Promise 的语法糖,让异步代码更简洁、读起来更像同步,本质还是依赖 Promise。

实际开发中,建议优先用 async/await(简洁)。

  <script>function one() {console.log('回到宿舍先开空调')}function two() {console.log('打卡欧阳春晓锻炼20分钟')}function three() {console.log('洗澡睡觉')}const P1 = new Promise((resolve, reject) => {resolve('回到宿舍')})P1.then(result1 => {console.log(result1)}).then(() => {one();}).then(() => {two();}).then(()=>{three();}).catch(()=>{console.log('先回自习室拿手机'')})
</script>
<script>function one() {console.log('回到宿舍先开空调')}function two() {console.log('打卡欧阳春晓锻炼20分钟')}function three() {console.log('洗澡睡觉')}const P1 = new Promise((resolve, reject) => {resolve('回到宿舍')})async function HH() {try {const result = await P1;console.log(result)one();two();three();} catch (error) {console.log('先回自习室拿手机'')}}HH();</script>
 <script>const P1 = new Promise((resolve, reject) => {resolve('回到宿舍')})const P2 = new Promise((resolve, reject) => {resolve('回到宿舍先开空调')})const P3 = new Promise((resolve, reject) => {resolve('打卡欧阳春晓锻炼20分钟')})const P4 = new Promise((resolve, reject) => {resolve('洗澡睡觉')})async function HH() {try {const [result1,result2,result3,result4] = await Promise.all([P1,P2,P3,P4]);console.log(result1,result2,result3,result4);} catch (error) {console.log('先回自习室拿手机')}}HH();</script>

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

相关文章:

  • 【算法训练营Day23】贪心算法part1
  • 前端工程化:pinia
  • 分享一款基于STC8H8K32U-45I-LQFP48单片机的4路数字量输入输出模块
  • 当AI重塑世界:普通人如何成为“主动进化者”?
  • 第16届蓝桥杯Python青少组_省赛_中/高级组_2025年5月真题
  • VirtualBox虚拟机网卡配置
  • LeetCode 2438.二的幂数组中查询范围内的乘积:模拟(前缀和可选)
  • Ansible 面试题 20250811
  • ansible学习第一天
  • 逐际动力开源运控 tron1-rl-isaacgym 解读与改进
  • 聊天室全栈开发-保姆级教程(Node.js+Websocket+Redis+HTML+CSS)
  • 当C#遇上Notepad++:实现GCode可视化编辑的跨界实践
  • ArkUI中的自定义组件(一)
  • 【MYSQL】MySQL中On duplicate key update
  • FlinkSql(详细讲解一)
  • Dify入门指南(2):5 分钟部署 Dify:云服务 vs 本地 Docker
  • Speech Databases of Typical Children and Children with SLI 数据集解读
  • Vue 中的 Class 与 Style 绑定详解1
  • 数据类型 string
  • MCU中的存储器映射(Memory Map)
  • 【CF】Day125——图论三题
  • 训推一体 | 暴雨X8848 G6服务器 x Intel®Gaudi® 2E AI加速卡
  • C语言变量的声明和定义有什么区别?
  • 图生视频实战:用[灵龙AI API]玩转AI生成视频 – 第2篇,从静图到大片
  • 关于linux系统编程2——IO编程
  • 【Docker实战进阶】Docker 实战命令大全
  • AI基础与实践专题:PyTorch实现线性回归
  • 【unity实战】在Unity中实现不规则模型的网格建造系统(附项目源码)
  • 【实用案例】录音分片上传的核心逻辑和实现案例【文章附有代码】
  • Godot ------ 平滑拖动03