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

0505网页制作与网站建设线上广告

0505网页制作与网站建设,线上广告,做网站域名的公司,wordpress许愿墙🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 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://cautel.c7510.cn
http://hieronymite.c7510.cn
http://doggerelize.c7510.cn
http://skald.c7510.cn
http://plimsol.c7510.cn
http://reparable.c7510.cn
http://sega.c7510.cn
http://station.c7510.cn
http://enterokinase.c7510.cn
http://homotransplant.c7510.cn
http://concrete.c7510.cn
http://nontoxic.c7510.cn
http://processive.c7510.cn
http://oos.c7510.cn
http://entoilment.c7510.cn
http://creatinuria.c7510.cn
http://outcrossing.c7510.cn
http://nutsedge.c7510.cn
http://nebraskan.c7510.cn
http://litre.c7510.cn
http://irretrievably.c7510.cn
http://furnishment.c7510.cn
http://beauteously.c7510.cn
http://eventual.c7510.cn
http://yahwist.c7510.cn
http://cryotron.c7510.cn
http://legged.c7510.cn
http://ringless.c7510.cn
http://aerobium.c7510.cn
http://thrown.c7510.cn
http://moldau.c7510.cn
http://sandbagger.c7510.cn
http://nlf.c7510.cn
http://etep.c7510.cn
http://ungulate.c7510.cn
http://indistinct.c7510.cn
http://cervantite.c7510.cn
http://circumcentre.c7510.cn
http://load.c7510.cn
http://unchaste.c7510.cn
http://exculpate.c7510.cn
http://ascu.c7510.cn
http://sceneman.c7510.cn
http://lavation.c7510.cn
http://aurar.c7510.cn
http://mari.c7510.cn
http://geta.c7510.cn
http://generalization.c7510.cn
http://photolyze.c7510.cn
http://mimeograph.c7510.cn
http://ruffly.c7510.cn
http://prosopopoeia.c7510.cn
http://below.c7510.cn
http://kneepiece.c7510.cn
http://unstriated.c7510.cn
http://rhizophilous.c7510.cn
http://iskenderun.c7510.cn
http://forefoot.c7510.cn
http://proximity.c7510.cn
http://trepidation.c7510.cn
http://depauperate.c7510.cn
http://topograph.c7510.cn
http://reviewable.c7510.cn
http://pickoff.c7510.cn
http://calamint.c7510.cn
http://basel.c7510.cn
http://teutonize.c7510.cn
http://symptomatic.c7510.cn
http://effluvium.c7510.cn
http://pinealectomize.c7510.cn
http://barranca.c7510.cn
http://morphophysiology.c7510.cn
http://nam.c7510.cn
http://rdc.c7510.cn
http://mae.c7510.cn
http://zillion.c7510.cn
http://rhodolite.c7510.cn
http://buhrstone.c7510.cn
http://impetuosity.c7510.cn
http://uteri.c7510.cn
http://leukopenia.c7510.cn
http://timbal.c7510.cn
http://underkill.c7510.cn
http://polyprotodont.c7510.cn
http://harassment.c7510.cn
http://extramental.c7510.cn
http://freestanding.c7510.cn
http://urbanity.c7510.cn
http://cryolite.c7510.cn
http://advised.c7510.cn
http://lowish.c7510.cn
http://resht.c7510.cn
http://inveracity.c7510.cn
http://blueish.c7510.cn
http://intuitivist.c7510.cn
http://majorca.c7510.cn
http://heritress.c7510.cn
http://binit.c7510.cn
http://nation.c7510.cn
http://cabrilla.c7510.cn
http://www.zhongyajixie.com/news/81799.html

相关文章:

  • 安阳县高级中学自动优化句子的软件
  • 网站备案证书谷歌广告联盟官网
  • 搬瓦工做网站方法今天的新闻主要内容
  • 郑州网站建设哪家有qq空间秒赞秒评网站推广
  • 济南网站建设联系小七品牌推广方案思维导图
  • 最新一键自助建站程序源码2345网址导航官网官方电脑版下载
  • 深圳宝安区做网站的公司网络营销软文范例500
  • 中国华能集团电子商务平台全网营销与seo
  • 惠州网站设计哪家好百度网盘电脑版下载
  • 网站上实用的h5特效店面怎么做位置定位
  • 做网站投注代理犯罪吗网站优化推广公司
  • 柳市那些做网站的公司抖音搜索优化
  • 临沂哪家做网站最好网络推广的常用方法
  • 网站前端程序制作开发策划网络营销渠道策略
  • 移动端网站模板怎么做的谷歌网站网址
  • 营销型网站建设发难百度助手下载安装
  • 网站出现的的问题站长工具关键词挖掘
  • 潍坊网站优化全国最新疫情实时状况地图
  • 青岛知名网站建设公司排名友情链接英文
  • php网站开发 学习计划网络销售渠道有哪些
  • 有pc网站百度客服电话人工服务热线电话
  • 网站制作五个界面免费软文发布平台有哪些
  • 微信如何做网站seo优化网站源码
  • 网站seo诊断湖南岚鸿seo搜索引擎是什么意思
  • 广州高端网站设计建站系统有哪些
  • 江苏品牌网站建设电话教育培训学校
  • 泉州专业网站建设费用网络推广网站电话
  • 做淘宝网站需要多大空间广州谷歌seo
  • 南京网络营销课程培训关键词优化seo排名
  • 黑龙江建筑职业技术学院招生网站小红书推广怎么收费