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

异步与回调

异步与回调

  • 异步
  • 回调
    • await代码的本质
    • await代码的执行逻辑
  • 总结
  • 语法表
  • C#中事件

异步

异步是不按顺序执行的代码,函数前面加上async后,表示他是一个异步函数

回调

回调是将一个函数作为参数传递给另一函数,在适当时候被调用执行的机制。

await代码的本质

编译前

asyncfunctionfetchData(){// await 编译后实际上是回调constresult=awaitfetch('https://api.example.com/data');console.log(result);}

编译后

functionfetchData(){returnfetch('https://api.example.com/data').then(function(result){console.log(result);});}

await代码的执行逻辑

当每次运行到 await 代码时:

  • 检查 Task 状态:Task 状态分为:
    • 已完成(Resolved/Fulfilled)—— 立即继续执行后续代码

    • 未完成(Pending)—— 暂停当前异步函数,将后续代码包装为回调,等待 Task 完成后触发

发生回调:当 Task 完成时,之前包装的回调被触发,从暂停处继续执行

(注:C#中返回的为Task,javaScript中返回的为Promise,两者核心机制相同)

总结

await 的本质就是 Promise.then() 的语法糖,编译器将看似同步的代码拆解为嵌套的回调链。

语法表

C#JavaScript
异步函数返回类型TaskTask<T>Promise
await 等待的对象Task对象Promise对象
本质Task表示异步操作本身Promise表示异步操作结果的凭证
状态名称CreatedWaitingForActivationRanToCompletion/Faulted/Canceledpendingfulfilled/rejected
状态检查属性IsCompletedIsFaultedIsCanceled通过then()catch()await处理

C#中事件

(委托就是“方法的类型”——可以把方法当作变量传递。)
+=用来订阅,invoke用来触发

http://www.jsqmd.com/news/529437/

相关文章:

  • 海外短剧系统开发:多语言、多币种、多支付、全球 CDN 一站式方案
  • 2026年Uniapp商城开发终极指南:UI 组件库 vs 全栈模板,如何为你的项目精准选型?
  • 新能源汽车项目热管理分析:基于KULI软件的整车级别热模型研究及工况模拟报告
  • 【Day47】912. 排序数组【6 种排序】
  • 国民技术港股上市:市值83亿港元 年亏1.2亿 实控人孙迎彤持股不足3%
  • 实测Qwen3-VL-8B:图片描述、细节问答,多模态对话效果惊艳
  • 零样本语音克隆神器CosyVoice:上传10秒音频,生成专属语音包
  • AI检测率太高论文过不了?这4个降AIGC平台2026年必须用!
  • 免费开源SDR软件SDRPlusPlus完整指南:5分钟上手无线电信号分析
  • 工业烟气脱硫脱硝治理的智能化跃迁:从达标排放到系统zui优
  • Qt打包exe运行文件
  • ISP离线模式应用(一)
  • 【MySQL】MVCC详解, 图文并茂简单易懂
  • 植入道德悖论:让你的代码充满人性矛盾
  • 别再傻傻手动输验证码了!Python爬虫实战:用Tesseract+OpenCV搞定90%的图形验证码
  • TCA9554A I²C GPIO扩展器驱动设计与工程实践
  • 别再瞎找了!9个降AIGC网站开源免费测评:降AI率全维度对比推荐
  • 【紧急预警】Dify 0.10.0升级后Agent并发崩溃率上升300%!立即执行这6项兼容性检查与降级回滚checklist
  • 论文AI率40%以上怎么降?毕业季实战降AI攻略
  • RMBG-2.0在软件测试中的应用:UI自动化测试图像比对
  • Blender3mfFormat:解锁3D打印工作流的关键插件
  • 手把手教你用VC++开发汽车OBD2蓝牙诊断工具(附完整代码)
  • ARM内存属性MemAttr实战指南:EWA、Device、Cacheable到底怎么配?
  • 3步让老款Mac重获新生:OpenCore Legacy Patcher深度解析
  • YOLOv5集成DAMO-YOLO GFPN模块:轻量Backbone与重Neck的检测性能优化实践
  • phy_simulators之nr_pbchsim之SSS
  • 终极指南:如何用JiYuTrainer突破极域电子教室限制,实现自主学习自由
  • 微穿孔板吸声系数计算方法:单层、双层串联并联及两两串联后并联的精确分析理论,采用COMSOL技...
  • 如何快速上手Zettlr:跨平台写作工具的终极安装配置指南
  • MCP OAuth 2026迁移实战血泪史(2024 Q3全网首份生产环境故障复盘报告)