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

JS 异步 从零讲(大白话 + 真实场景 + 可运行案例)

按顺序回调函数 → Promise → async/await工作最常用直接上手。1. 回调函数最原始缺点回调地狱2. Promise解决回调地狱链式调用new Promise((resolve, reject) { //异步操作 //成功 resolve(数据) // 失败 reject(错误) }) .then((res) { //成功处理 }) .catch((err) { //失败处理 });真实场景 封装定时器异步function fn(msg, delay) { return new Promise((resolve, reject) { setTimeout(() { resolve(msg); }, delay); }); }链式调用fn(第一步, 1000) .then((res) { console.log(res); return fn(第二步, 1000); }) .then((res) { console.log(res); return fn(第三步, 1000); }) .then((res) console.log(res));常用静态方法Promise.all([p1,p2,p3])全部成功才成功并行请求Promise.race([p1,p2])谁先完成取谁并行 2 个接口同时发请求Promise.all([fn(A, 1000), fn(B, 2000)]).then((res) { console.log(res, Promise.all); });3. async /await终极写法最舒服项目必用async function 函数名(){const 结果 await Promise对象;}上面的定时器 用async/await 重写function fnawait(msg, delay) { return new Promise((resolve, reject) { setTimeout(() resolve(msg), delay); }); } async function run() { const r1 await fnawait(1, 1000); console.log(r1); const r2 await fnawait(2, 1000); console.log(r2); const r3 await fnawait(3, 1000); console.log(r3); } run();捕获错误try/catchasync function runDetails() { try { const res await fn(第一步, 1000); console.log(res); } catch (err) { console.log(出错了, err); } } runDetails();一句话总结1.回调嵌套地狱不用2.Promise:链式解决嵌套3.async/await 最简完整代码!doctype html html langzh-CN head meta charsetUTF-8 / meta nameviewport contentwidthdevice-width, initial-scale1.0 / title练习/title /head body div idcontent/div script console.log(--- JS 异步 从零讲大白话 真实场景 可运行案例 ---); //按顺序回调函数 → Promise → async/await工作最常用直接上手。 //1. 回调函数最原始缺点回调地狱 // 2. Promise解决回调地狱链式调用 new Promise((resolve, reject) { //异步操作 //成功 resolve(数据) // 失败 reject(错误) }) .then((res) { //成功处理 }) .catch((err) { //失败处理 }); //真实场景 封装定时器异步 function fn(msg, delay) { return new Promise((resolve, reject) { setTimeout(() { resolve(msg); }, delay); }); } // 链式调用 fn(第一步, 1000) .then((res) { console.log(res); return fn(第二步, 1000); }) .then((res) { console.log(res); return fn(第三步, 1000); }) .then((res) console.log(res)); // 常用静态方法 // Promise.all([p1,p2,p3])全部成功才成功并行请求 // Promise.race([p1,p2])谁先完成取谁 // 并行 2 个接口同时发请求 Promise.all([fn(A, 1000), fn(B, 2000)]).then((res) { console.log(res, Promise.all); }); // 3. async /await终极写法最舒服项目必用 // async function 函数名(){ // const 结果 await Promise对象; // } // 上面的定时器 用async/await 重写 function fnawait(msg, delay) { return new Promise((resolve, reject) { setTimeout(() resolve(msg), delay); }); } async function run() { const r1 await fnawait(1, 1000); console.log(r1); const r2 await fnawait(2, 1000); console.log(r2); const r3 await fnawait(3, 1000); console.log(r3); } run(); // 捕获错误try/catch async function runDetails() { try { const res await fn(第一步, 1000); console.log(res); } catch (err) { console.log(出错了, err); } } runDetails(); // 一句话总结 //1.回调嵌套地狱不用 //2.Promise:链式解决嵌套 //3.async/await 最简 /script /body /html

相关文章:

JS 异步 从零讲(大白话 + 真实场景 + 可运行案例)

按顺序:回调函数 → Promise → async/await,工作最常用,直接上手。1. 回调函数(最原始,缺点:回调地狱)2. Promise(解决回调地狱,链式调用)new Promise((reso…...

Wayback Machine浏览器扩展:时光倒流神器,一键保存网页历史

Wayback Machine浏览器扩展:时光倒流神器,一键保存网页历史 【免费下载链接】wayback-machine-webextension A web browser extension for Chrome, Firefox, Edge, and Safari 14. 项目地址: https://gitcode.com/gh_mirrors/wa/wayback-machine-webex…...

游戏开发团队必须立即升级的语音合成栈:Llama-3-TTS开源模型实测对比(RTX 4090 vs. Snapdragon 8 Gen3)

更多请点击: https://codechina.net 第一章:AI语音合成在游戏开发中的应用 AI语音合成(Text-to-Speech, TTS)正深刻重塑游戏叙事、角色交互与本地化工作流。相比传统预录语音,实时TTS可动态生成符合上下文语境、情绪状…...

智能设计时代的企业VI物料采购:小批量定制降本增效实践

核心摘要 在智能设计与柔性供应链深度融合的背景下,企业可通过一体化在线平台实现“品牌周边”小批量定制,将传统跨环节采购转为单线闭环,显著降低沟通与试错成本。小批量定制的核心价值:打破传统印厂起订量限制,按需…...

巴洛克光影建模失败率高达83%?用这7个构图锚点+12组权威艺术史关键词立即逆转

更多请点击: https://kaifayun.com 第一章:巴洛克光影建模的危机本质与历史断层 “巴洛克光影建模”并非真实存在的技术流派,而是对20世纪末至21世纪初三维渲染实践中一种高度装饰化、过度依赖手工打光与物理不一致材质叠加现象的隐喻性指称…...

互联网大厂Java面试实录:严肃面试官 vs. 搞笑程序员谢飞机

互联网大厂Java面试实录:严肃面试官 vs. 搞笑程序员谢飞机第一轮:基础问题 面试官:你好,谢飞机。既然你是来应聘Java开发岗位的,那我先问一些简单的问题。第一个问题,Java中的HashMap是线程安全的吗&#x…...

Midjourney V6色调分离失效?3步修复色相断层、5类常见错误代码级诊断指南

更多请点击: https://kaifayun.com 第一章:Midjourney V6色调分离失效的本质归因 Midjourney V6 引入了更严格的色彩空间一致性约束与隐式色彩嵌入机制,导致传统依赖 HSV/HSL 分量操控的“色调分离”(Color Separation&#xff0…...

为什么四羟基合铝酸钠中的羟基明明是氢氧根离子却叫做羟基?

一、为什么四羟基合铝酸钠中的「羟基」明明是 OH⁻ 离子,却叫做「羟基」? 这是一个很好的概念辨析问题,涉及到配位化学命名规则与无机化学传统命名的差异。 1. 在配位化合物中,OH⁻ 作为配体时的名称就是「羟基」 在配合物&#x…...

别再新建空文件了!手把手教你用CodeBlocks创建可调试的C/C++工程(避坑中文路径)

别再新建空文件了!手把手教你用CodeBlocks创建可调试的C/C工程(避坑中文路径) 刚接触编程的新手常常会遇到这样的困惑:明明按照教程写好了代码,设置了断点,按下F7却毫无反应。这种挫败感往往源于一个被多数…...

三氧化二铝与氢氧化钠反应的产物到底是四羟基合铝酸钠还是偏铝酸钠?

三氧化二铝与氢氧化钠反应的产物 三氧化二铝(Al₂O₃)与氢氧化钠(NaOH)反应,在水溶液或水存在下,实际生成的是 四羟基合铝酸钠(sodium tetrahydroxoaluminate),化学式为 …...

Super Productivity:如何用时间盒和智能追踪实现真正的高效工作?

Super Productivity:如何用时间盒和智能追踪实现真正的高效工作? 【免费下载链接】super-productivity Super Productivity is an advanced todo list app with integrated Timeboxing and time tracking capabilities. It also comes with integrations…...

113、MPC:非线性MPC与实时优化

113、MPC:非线性MPC与实时优化 从一次电机堵转说起 去年调试一个四足机器人单腿的力控,用的线性MPC,模型是简单的质量-弹簧-阻尼。空载跑得挺好,一上负载,电机堵转,电流直接爆表。查了半天,发现是关节摩擦力矩的非线性项在MPC的线性化模型里被忽略了——线性MPC把摩擦…...

Python开发者三步完成Taotoken接入并运行第一个AI对话

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Python开发者三步完成Taotoken接入并运行第一个AI对话 对于希望快速将大模型能力集成到Python项目中的开发者而言,找到…...

OpCore-Simplify技术解构:自动化OpenCore EFI配置引擎的架构剖析

OpCore-Simplify技术解构:自动化OpenCore EFI配置引擎的架构剖析 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 在开源系统定制领域&…...

Unity AI 编程(VS Code + Cline + DeepSeek-V4)【+1】

Unity AI 编程操作流演示(VS Code + Cline + DeepSeek-V4-Pro)目标:通过 AI 直接在 Unity 项目内进行代码修改与功能迭代,实现“让 AI 进入工程并完成修改”,而不是仅输出代码片段供手动复制。 Unity AI 编程操作流: 步骤一:在 Assets 目录下创建名为 “C# Scripts” 的…...

告别Python程序分发难题:Auto PY to EXE图形化打包终极指南

告别Python程序分发难题:Auto PY to EXE图形化打包终极指南 【免费下载链接】auto-py-to-exe Converts .py to .exe using a simple graphical interface 项目地址: https://gitcode.com/gh_mirrors/au/auto-py-to-exe 还在为Python程序分享而烦恼吗&#x…...

STM32F407用HAL库驱动42步进电机,从CubeMX配置到代码调试的完整避坑指南

STM32F407 HAL库驱动42步进电机实战:从CubeMX配置到高效调试的完整指南 第一次用STM32F407的HAL库驱动42步进电机时,我花了整整三天时间才让电机转起来。最让我抓狂的是明明CubeMX配置看起来一切正常,TIM1通道就是死活不出PWM波形。后来才发现…...

实战避坑:C语言结构体定义时,那个‘名字’到底能不能省?

C语言结构体命名策略:从语法细节到工程实践的深度思考 在嵌入式开发中,我遇到过这样一个场景:团队为了快速实现通信协议解析,大量使用了匿名结构体。初期开发效率确实很高,但三个月后需求变更时,没人能说清…...

3步解锁跨平台系统部署:WinDiskWriter让macOS用户轻松制作Windows启动盘

3步解锁跨平台系统部署:WinDiskWriter让macOS用户轻松制作Windows启动盘 【免费下载链接】windiskwriter 🖥 Windows Bootable USB creator for macOS. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. 👾 UE…...

ElevenLabs印地文语音质量崩塌真相(印地语TTS失效深度溯源):7类发音错误+5个未公开参数修复方案

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs印地文语音质量崩塌的全局现象与影响评估 近期,ElevenLabs平台在印地语(Hindi)TTS合成任务中出现系统性语音质量退化,表现为音素错读、韵律断裂…...

早上好呀

早上好...

打卡信奥刷题(3295)用C++实现信奥题 P9027 [CCC 2021 S5] Math Homework

P9027 [CCC 2021 S5] Math Homework 题目描述 构造一个长度为 NNN 的整数序列 AAA,使得: ∀i1,2,⋯,N,1≤Ai≤109\forall i1,2,\cdots,N,1\leq A_i\leq 10^9∀i1,2,⋯,N,1≤Ai​≤109;∀i1,2,⋯,M,gcd⁡(AXi,AXi1,⋯,AYi)Zi\forall i1,2,\c…...

平面四杆机构运动学分析与尺寸优化设计——基于MATLAB的完整实现

平面四杆机构运动学分析与尺寸优化设计——基于MATLAB的完整实现 摘要: 平面四杆机构是机械工程中最基础、应用最广泛的机构之一,其运动学特性直接影响整个机械系统的性能。本文以曲柄摇杆机构为研究对象,系统阐述基于闭环矢量法的运动学建模方法,通过MATLAB实现机构的位移…...

FLUX.1-dev FP8量化模型:6GB显存也能玩转AI绘画的终极解决方案

FLUX.1-dev FP8量化模型:6GB显存也能玩转AI绘画的终极解决方案 【免费下载链接】flux1-dev 项目地址: https://ai.gitcode.com/hf_mirrors/Comfy-Org/flux1-dev 还在为AI绘画需要昂贵显卡而烦恼吗?FLUX.1-dev FP8量化模型彻底改变了游戏规则&…...

C++Stack栈类模版实例详解

栈的实现方式分为3种基于静态数组实现,内部预设一个很大的数组对象, 实现简单,缺点是空间受限。基于动态数组实现,内部预设一个容量值,然后分配一段内存空间数组,如果入栈大于默认容量值时,则再次扩大分配新的内存数组,并将旧数组拷贝至新数组及释放旧数组.基于双向…...

告别客户端安装!浏览器远程控制的终极方案:noVNC实战指南

告别客户端安装!浏览器远程控制的终极方案:noVNC实战指南 【免费下载链接】noVNC VNC client web application 项目地址: https://gitcode.com/gh_mirrors/no/noVNC 还在为跨平台远程控制而烦恼吗?还在为每个设备都要安装专用客户端而…...

为什么你的“丝绸”总像锡纸?Midjourney材质语义断层诊断:87%用户忽略的材质动词前置语法(drape, crumple, refract)

更多请点击: https://intelliparadigm.com 第一章:材质语义断层的本质:从物理光学到提示词编码的跨模态失配 材质在真实世界中由微观结构、折射率、表面粗糙度、各向异性散射等物理属性共同定义,其视觉表现依赖于光与物质的连续相…...

网易520发布会公布40余款游戏动态,新品精品化+AI应用成趋势

网易520发布会:多款新品游戏崭露头角5月20日,2026年『网易游戏520线上发布会』盛大举办,公布了40余款游戏及IP的最新动态。其中,《遗忘之海》官宣将于5月22日开启三测前瞻直播,并于28日正式开启测试。这款游戏出自《第…...

3分钟掌握AI图像分层:从单张图片到专业PSD的智能转换

3分钟掌握AI图像分层:从单张图片到专业PSD的智能转换 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 你是否曾经面对一张精美的插画&#xff…...

硬件选型干货|钡特电源DQ1-15D1709S与金升阳QA01-17属工业标准模块电源,避坑指南

在工业电子硬件研发中,工业DC-DC模块是板级隔离供电的核心器件,其标准化封装、性能稳定性及国产化水平,直接影响研发效率、系统可靠性与供应链安全。钡特电源DQ1-15D1709S与金升阳QA01-17作为国产直流电源模块领域的代表性型号,均…...