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

石家庄 做网站百度开放云平台

石家庄 做网站,百度开放云平台,网站建设将来有什么发展,网站下载视频方法🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 📘 1. 引言 📘 2. 使用方法 📘 3. 实现原理 📘 4. 写到最后…

 🎬 江城开朗的豌豆:个人主页

 🔥 个人专栏 :《 VUE 》 《 javaScript 》

⛺️ 生活的理想,就是为了理想的生活 !

在这里插入图片描述

目录

📘 1. 引言

📘 2. 使用方法

📘 3. 实现原理

📘 4. 写到最后


 

📘 1. 引言

在深入讨论 async/await 之前,我们需要了解一下 JavaScript 的单线程和非阻塞的特性。JavaScript 是单线程的,也就是说在任何给定的时间点,只能执行一个操作。然而,对于需要大量时间的操作(例如从服务器获取数据),如果没有适当的管理机制,这种单线程特性可能会导致应用程序的阻塞。为了解决这个问题,JavaScript 引入了回调函数和后来的 Promise,用来管理这些异步操作。

然而,回调函数Promise 还是存在一些问题。回调函数很容易导致 "回调地狱",因为每个异步操作都需要一个回调函数,如果有很多这样的操作,代码就会变得非常混乱。Promise 解决了这个问题,让异步代码更加直观,但是,Promise 的链式调用有时候还是显得不够直观。

为了结合Promise和生成器的优势,Async/awaitECMAScript 2017(ES8)中被引入。它通过async函数和await表达式提供了一种更加直观和简洁的方式来编写异步代码,消除了回调函数和手动管理Promise的需要。

📘 2. 使用方法

Async/await的使用方法非常简单明了,主要涉及两个关键字:async和await。

  • async关键字:用于声明一个async函数,它返回一个Promise对象。在async函数内部,我们可以使用await关键字来暂停函数的执行,等待一个异步操作的完成,并获得其结果。在这个过程中,async函数会暂时释放线程的控制权,使其他代码可以继续执行。

  • await关键字:用于暂停async函数的执行,等待一个Promise对象的完成,并返回其解析的值。它只能在async函数内部使用。当使用await表达式时,代码的执行会暂停,直到Promise对象被解析或拒绝。

下面是一个示例,展示了Async/await的使用方法:

async function getData() {try {const response = await fetch('https://api.example.com/data');const data = await response.json();return data;} catch (error) {console.error('Error:', error);throw error;}
}getData().then(data => console.log('Data:', data)).catch(error => console.error('Error:', error));

在上面的示例中,getData函数是一个async函数,它等待fetch函数返回的Promise对象,并使用await关键字获取响应的数据。最后,我们使用.then方法处理返回的数据,或使用.catch方法处理可能发生的错误。

📘 3. 实现原理

Async/Await 的实现原理其实就是 Generator + Promise。我们知道 Generator 可以在 yield 关键字处暂停和恢复执行,Promise 可以处理异步操作,两者结合在一起,就可以实现一个类似于 async/await 的功能。


function promiseFn() {return new Promise((resolve) => {setTimeout(() => {resolve('promise resolved');}, 2000);});
}
function* genFn() {let result = yield promiseFn();console.log(result);
}
function asyncToGenerator(generator) {let gen = generator();return new Promise((resolve, reject) => {function step(key, arg) {let result;try {result = gen[key](arg);} catch (error) {return reject(error);}const { value, done } = result;if (done) {return resolve(value);} else {return Promise.resolve(value).then(val => {step('next', val);}, err => {step('throw', err);});}}step('next');});
}
asyncToGenerator(genFn);

在上述代码中,我们首先创建了一个 promiseFn 函数,该函数返回一个在 2 秒后解析的 Promise。然后,我们创建了一个 Generator 函数 genFn,在该函数内部,我们使用 yield 关键字暂停执行并等待 promiseFn 的结果。最后,我们创建了一个 asyncToGenerator 函数,该函数接受一个 Generator 函数作为参数,并返回一个新的 Promise,这个 Promise 的解析值就是 Generator 函数的返回值。

📘 4. 写到最后

总的来说,Async/await是一种使得JavaScript异步编程变得更加友好和易用的语法特性。它帮助开发者以一种更加清晰和简洁的方式处理异步操作,提升了代码的可读性和维护性。对于那些曾经苦于回调地狱的开发者来说,Async/await是一种令人期待的改变,它让我们可以更加舒心地编写异步代码。

请大家不吝赐教,在下方评论或者私信我,十分感谢🙏🙏🙏.

✅ 认为我某个部分的设计过于繁琐,有更加简单或者更高逼格的封装方式

✅ 认为我部分代码过于老旧,可以提供新的API或最新语法

✅ 对于文章中部分内容不理解

✅ 解答我文章中一些疑问

✅ 认为某些交互,功能需要优化,发现BUG

✅ 想要添加新功能,对于整体的设计,外观有更好的建议

最后感谢各位的耐心观看,既然都到这了,点个 👍赞再走吧

http://www.tj-hxxt.cn/news/70092.html

相关文章:

  • 如何靠做网站赚钱吗全媒体广告代理
  • 个人网站空间购买谷歌收录提交入口
  • 大连今日刚刚发生的重大新闻seo公司多少钱
  • 图片网站制作谷歌搜索引擎镜像入口
  • 网站怎么做sem网站seo查询
  • 上海做网站哪家公司好网络安全培训机构哪家好
  • 河北公司网站开发万网域名查询工具
  • 建筑设计网站 知乎账号seo是什么
  • 搜不到自己的网站衡水网站优化推广
  • 织梦网站导航浮动公司怎么在百度上推广
  • 网站免费建站什么是seo如何进行seo
  • 白酒网站源码seo关键词查询工具
  • 为赌博网站做推广百度影响力排名顺序
  • 网站出现乱码全国疫情实时资讯
  • 网线水晶头接法图解零基础seo入门教学
  • 教育培训网站建设佛山百度推广公司
  • 政府网站建设的战略买卖交易平台
  • 中文购物网站模板网站优化推广平台
  • 西宁企业做网站网络公司推广公司
  • 牛商网做网站要多少钱济南网站优化
  • 做药公司的网站前置审批友情链接的网站
  • 做网站的开发软件是什么网站建设公司推荐
  • 深圳自适应网站建设欧洲站fba
  • 一台云服务器做多个网站想学销售去哪培训
  • 安网站建设公司现在最火的发帖平台
  • 河南哪里网站建设公司0元免费做代理
  • 王者荣誉网站怎么做杭州最好的seo公司
  • cpa自己做网站百度广告官网
  • 网站界面设计 考虑因素南通百度seo代理
  • 直播网站是怎么做的美国搜索引擎浏览器