摘要:最近看到一张关于的图其实是中的一张,挺有意思。最底层的就是现在的包括。使得编写程序看起来就像普通的程序一样。同时也支持的处理。中介绍的是第个层次。杨博,全球软件开发大会
最近看到一张关于async的图(其实是PPT[1]中的一张),挺有意思。
大概解释一下。async编程有4个层次(level)。
最底层的就是现在的Javascript(包括ES6)。就是async + callback模式。所以有callback hell。即使Promise也没有解决这个问题。因为一段逻辑其实是被分散到多个地方表述的,导致代码的可读性很差。
发展到最近就有了async + await模式。抛弃了callback。使得编写async程序看起来就像普通的程序一样。同时也支持exception的处理。Python 3.5和ES7就到了这个阶段。这在我看来已经很先进了。因为async await的代码除了有些关键字标签之外,已经和普通代码看不出什么区别。所有程序逻辑都集中在一处。当然,代码是这样,但是在我们的脑子里面还是要理解这个是异步的,不会阻塞等等。
PPT中介绍的是第4个层次: monad。不明觉厉。有机会了解下。
杨博,More than async, QCon全球软件开发大会2016
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/38149.html
摘要:调度器有了迭代器,还需要一个调度器才能按照预期的流程串行执行需要的函数,同时处理参数传递的过程我自己写的代码,调度的工作是由一起做的。 本文摘自我的博客,欢迎大家去逛逛。 又是两周没写博客了,圣诞夜来水一发~今天稍微看了下async的源码,感觉很简短精炼,总共也才1000多行代码,好多值得学习的地方。主要看的是waterfall模块,由于源码中有好多不同接口公用的部分,因此看完wate...
摘要:注是先前版本处理异步函数的方式,通过可以将异步函数封装成,传入普通参数后形成仅需要参数的偏函数,以此简化调用代码目前中的偏函数已经被无情地化了。 前几天研究了TJ的koa/co4.x和一系列koa依赖的源码,在知乎上做出了人生首次回答(而且我真得再也不想去知乎回答技术问题了_(:з」∠)_),因此把文字搬到这里。 ES2015 Generator/Yield 关于Generator...
摘要:协议主要是通过请求头当中的一些字段来和服务器进行通信,从而采用不同的缓存策略。会缓存所有的结构,但是问题在于,一些页面开始时进行的上报或者请求可能会被影响。 1.如何用一个div实现下图 showImg(https://segmentfault.com/img/bVbm8Rf?w=133&h=134); css #demo{ width:120px; h...
摘要:协议主要是通过请求头当中的一些字段来和服务器进行通信,从而采用不同的缓存策略。会缓存所有的结构,但是问题在于,一些页面开始时进行的上报或者请求可能会被影响。 1.如何用一个div实现下图 showImg(https://segmentfault.com/img/bVbm8Rf?w=133&h=134); css #demo{ width:120px; h...
阅读 2630·2021-09-13 10:26
阅读 1888·2021-09-03 10:28
阅读 1961·2019-08-30 15:44
阅读 761·2019-08-29 14:07
阅读 357·2019-08-29 13:12
阅读 2121·2019-08-26 11:44
阅读 2309·2019-08-26 11:36
阅读 1989·2019-08-26 10:19