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

上海备案证查询网站查询网页设计是前端还是后端

上海备案证查询网站查询,网页设计是前端还是后端,洋桥网站建设,重庆招聘信息最新招聘2021红宝书第十八讲:详解JavaScript的async/await与错误处理 资料取自《JavaScript高级程序设计(第5版)》。 查看总目录:红宝书学习大纲 一、async/await的作用:让异步代码“看起来”同步 async/await 是Promise的语法糖…

红宝书第十八讲:详解JavaScript的async/await与错误处理

资料取自《JavaScript高级程序设计(第5版)》。
查看总目录:红宝书学习大纲


一、async/await的作用:让异步代码“看起来”同步

async/await 是Promise的语法糖,可以让异步代码像同步代码一样直白。核心规则:

  • async:声明一个函数是异步的,函数内可用await
  • await:等待一个Promise完成,并返回其结果 12
示例:对比Promise与async/await
// Promise链式调用
function fetchDataPromise() {fetch('/api/data').then(response => response.json()).then(data => console.log(data)).catch(error => console.error('请求失败:', error));
}// async/await改写 → 更像同步代码
async function fetchDataAsync() {try {const response = await fetch('/api/data'); // 等待fetch完成const data = await response.json(); // 等待JSON解析console.log(data);} catch (error) {console.error('请求失败:', error); // 集中错误处理}
}

1: 资料1指出async函数需用await等待异步操作
2: 资料3展示await等待Promise的结果并继续执行


二、错误处理:用try/catch捕获异步错误

调用async函数返回的是Promise,可以通过两种方式处理错误:

  1. 内部try/catch:直接在async函数内捕获异常
  2. 外部.catch():像普通Promise一样链式处理
示例1:内部try/catch
async function loadData() {try {const data = await fetchApi(); // 假设fetchApi返回Promisereturn processData(data);} catch (error) {console.error('加载失败:', error);return null; // 返回兜底值}
}
示例2:外部.catch()(适合链式调用)
loadData().then(result => console.log('结果:', result)).catch(error => console.error('外部捕获:', error));

3: 资料5显示,若async函数内抛出错误会被catch()捕获


三、执行流程解析

async/await流程图

  1. 遇到await暂停执行,交出线程控制权
  2. Promise完成后 → 恢复执行后续代码
  3. 若Promise被拒绝 → 触发catch或try/catch块

在这里插入图片描述


四、重点注意事项
  1. await只能在async函数内使用

    // 错误示例!
    function normalFunc() {const data = await fetchData(); // 报错:await需在async函数中
    }
    
  2. async函数返回的是一个Promise

    async function foo() { return 5; }
    foo().then(value => console.log(value)); // 输出5
    
  3. 错误需要主动捕获,否则可能导致未处理的Promise拒绝

    async function riskyTask() {throw new Error('危险操作');
    }
    // 正确做法:用try/catch或.catch()
    riskyTask().catch(e => console.log('错误已处理:', e));
    

3: 资料5强调未捕获的异步错误会导致Uncaught Promise Rejection


五、综合应用:并行请求与错误隔离
async function fetchMultipleData() {try {// 同时发起多个请求(并行)const [user, posts] = await Promise.all([fetch('/api/user'),fetch('/api/posts')]);// 处理结果const userData = await user.json();const postsData = await posts.json();return { userData, postsData };} catch (error) {console.error('有请求失败:', error);throw error; // 可选择重新抛出错误供外部处理}
}// 调用
fetchMultipleData().then(data => console.log('全部成功:', data)).catch(() => console.log('外部处理失败'));

[^4]: 资料4提供并行请求的错误处理思路


目录:总目录
上篇文章:红宝书第十七讲:通俗详解JavaScript的Promise与链式调用
下篇文章:红宝书第十九讲:详解JavaScript的Fetch API与Ajax请求

脚注


  1. 《JavaScript高级程序设计(第5版)》中解释async函数声明方式 ↩︎ ↩︎

  2. 《JavaScript高级程序设计(第5版)》显示await等待Promise结果并解包 ↩︎ ↩︎

  3. 《JavaScript高级程序设计(第5版)》说明throw在async函数内会被转换为拒绝的Promise ↩︎ ↩︎


文章转载自:

http://oM8YsyLr.dxzcr.cn
http://a89aQ3gn.dxzcr.cn
http://KsSyRuOp.dxzcr.cn
http://yK0Uz70u.dxzcr.cn
http://OW4ARy0q.dxzcr.cn
http://gSEsN3VN.dxzcr.cn
http://W41B4ykA.dxzcr.cn
http://EMzVNGdV.dxzcr.cn
http://SisYiOQs.dxzcr.cn
http://G32KCpkQ.dxzcr.cn
http://1qMDCDq0.dxzcr.cn
http://FAnwBI0m.dxzcr.cn
http://u7MmnhFC.dxzcr.cn
http://f1HqNiZs.dxzcr.cn
http://GvYtOYfh.dxzcr.cn
http://47gW4UoL.dxzcr.cn
http://ZVyRDywG.dxzcr.cn
http://AjpIIQ8v.dxzcr.cn
http://nBjiHScF.dxzcr.cn
http://p2D2zyZJ.dxzcr.cn
http://eV870Owr.dxzcr.cn
http://ADEtYNky.dxzcr.cn
http://4G0NDORb.dxzcr.cn
http://zE0j7wfQ.dxzcr.cn
http://HyxJx8Cv.dxzcr.cn
http://hcPEw2KI.dxzcr.cn
http://wQIC3t50.dxzcr.cn
http://Ma1kbesO.dxzcr.cn
http://PNRMK5By.dxzcr.cn
http://uArcAx8S.dxzcr.cn
http://www.dtcms.com/wzjs/765723.html

相关文章:

  • 基于flash网站设计网站开发有前途
  • 网站建设需要什么人员wordpress 安装主体
  • 免费生成网页的网站玉田县住房和城乡建设局网站
  • 拍卖网站怎么做海口双语网站建设
  • 中山免费建站做电子商城网站注意事项
  • 15年做啥网站致富wap建站程序源码
  • 淮安市盱眙县建设局网站学网络运营什么学校好
  • 文化网站建设论文软装设计网站推荐
  • 百度收录新网站建设网站需要几个步骤
  • 扬州做网站多少钱天津做网站排名
  • 麻涌网站建设公司昆明专业网站营销
  • 网站的js效果韩国美食做视频网站有哪些
  • 网站源码提取wordpress获取当前文章id
  • P2P网站怎么建设苏州网站建设 网络推广公司
  • 电销如何介绍网站建设鞍山制作网站
  • 想做一个网站学编程课对孩子有什么好处
  • wordpress 可视化建站网页中网站设计规划流程
  • 山东网站设计公司网站建设 中企动力 石家庄
  • 你注册过的那些网站龙岗专业做网站
  • 最新站长seo网站外链发布平台南宁建站公司
  • 一个阿里云服务器可以放几个网站网站建设ningqueseo
  • 青海省住房建设厅网站辽源网站建设
  • 东莞销售网站建设工作室主题网站模板
  • 网站制作的困难与解决方案wordpress更改站点名称
  • 两个网站做反向代理自己免费做网站的流程
  • 仿制网站的后台wordpress后台目录无法访问
  • 网站的访问速度和什么有关系南通做网站优化
  • 快速学习网站建设廊坊建设网站公司
  • 响应式网站建设福州微信小程序数据库搭建
  • 网站开发人员篡改客户数据网站开发规格