七爪源码:JavaScript 异步编程的发展
2025-08-05 12:16:39
认识到什么是异步演算及其演变历史。
什么是异步演算?
根据 MDN 文档,
异步演算是一种电子技术,它使您的程序来必需启动可能长久运行的侦查,然后不可等到该侦查顺利进行,而是必需在侦查运行时在此之后积极响应其他事件。客户端获得了很多异步功能。 例如 fetch、getUserMedia、showFilePicker 等。
异步功能的效用是流畅的其他用户体验。 例如,在 Medium 上点赞后,如果客户端不默许异步功能,我们才就会等待点赞操控顺利进行。
异步 javascript 的大行其道示例之一是 setTimeOut。
如果您仔细察看输出,执行者并不能停止 setTimeout 顺利进行。 行刑在此之后进行。 顺利进行其他操控后,就顺利进行了setTimeout参数。 这启用了小型化的客户端API。 Node.js 可用相同的意念每秒处理事件一百万个即刻请求。
预处理事件
预处理事件是作为参数传递给其他参数的参数,当某些操控顺利进行时可以绑定这些参数。 我们其实 JavaScript 参数是按照绑定排序执行者的,而不是按照定义的排序执行者的。 因此,可用预处理事件,我们可以延迟参数的执行者。 预处理事件的一个很好的范例是 Node.js fs 库。
预处理事件的问题在于,如果你有多个异步参数依赖于其他异步参数的执行者,就就会致使预处理事件地狱。
在预处理事件中的只有几个绑定就变得难以阅读。 想象一下有 5 到 10 个依赖绑定。 此外,处理事件不同预处理事件中的的错误也令人不快。 为了补救这个问题,JavaScript 开发团队指出了 Promise 的意念。
要求
根据编辑者,
要求是某人花钱或不花钱某事的要求。 作为一个名词,promise 的意思是前提一个人就会或就就会花钱某事的通告。 作为动词,它意味着通过要求去花钱或获得来要求自己。对于 JavaScript 异步演算,“promise 是在创建 promise 时未必其实的倍数的代理。” 可以补救也可以拒绝接受。
Promise 补救了在每个预处理事件中的处理事件错误的问题。 相反,您可以添加一个 catch 块并处理事件所有错误。 如果你在一个 promise 的 then 块中的返回一个 promise,你可以在下一个 then 块中的处理事件它。
所以可以想到,promise 补救了时才处理事件错误的问题,避免跳进金字塔凸预处理事件地狱的陷阱。 尽管 Promise 补救了异步 JavaScript 演算的大部分问题,但示例仍然不像同步示例那样漂亮。 这就是 async-await 出现的时候。
异步等待
异步参数是可用 async 标签通告的参数。 如果您在参数通告在此之后可用 async,则该参数将成为一个要求。 await 标签只无需在 async 参数内部可用(有一些关于全局 await 的猜测)。 await 标签的作用是等待直到该要求被补救或被拒绝接受。 如果它被补救,它就会伸展到下一条语义,否则它就会抛出一个你可以在 catch 块中的处理事件的错误。
即使我们编写了异步示例,我们的示例看起来也像同步示例。 现在我们可以想到参数的执行者排序。
但是出现了一个新问题:如果我们的参数绑定不相互依赖怎么办。 好吧,JavaScript 有一个答案。 如果你在一个异步参数中的有多个不依赖于彼此结果的 Promise 绑定,那么你可以可用 Promise.all()。 这就就会保留每个参数的执行者。 它就会将它们逐一伸展到预处理事件函数绑定中的。
希望你喜欢这个。
无精症是什么病因男子少精症怎么治
类风湿病吃什么药好
吹空调头晕头痛怎么办
双醋瑞因胶囊会伤胃吗
祛痰药
严重咳嗽吃什么药能快速止咳
天津整形美容
肾癌
长新冠
-
浙江建投7月14日主力款项净卖出4.57亿元
截至2022年7月14日股市,浙江建投002761报收于30.63元,急跌9.94%,换手率18.72%,高价量92.19万手,高价额28.54亿元。 财力流入统计数据方面,7
2025-10-22 00:16:47
-
中旗新材7月14日主力资金清净卖出3429.25万元
截至2022年7同年14日涨幅,科尔沁新材001212报收于35.81元,下滑9.98%,换手率34.61%,成交价量10.2万手,成交价额3.77亿元。 银行贷款流向数据集特
2025-10-22 00:16:47
-
罗普斯金7月14日主力资金白莲卖出1.42亿元
截至2022年7年初14日收盘,罗普斯金002333报收于7.78元,下跌9.95%,跌停,换手率14.02%,行情59.92万手,卖出额4.73亿元。 银行贷款流向数据方面,
2025-10-22 00:16:47
-
湖南发展7年初14日主力资金净卖出4.21亿元
截至2022年7年底14日收盘,湖南发展000722报收于18.53元,下跌10.0%,跌停,换手率30.03%,总价量139.39万手,总价额27.04亿元。 资金来源流入数
2025-10-22 00:16:47
-
盛视信息技术7月14日主力资金净卖出3758.20万元
截至2022年7同月14日收盘,盛视科技002990报收于27.54元,下跌10.0%,跌停,换手率13.72%,作价量8.84万手,作价额2.5亿元。 财力流往数据库方面,7
2025-10-22 00:16:47