资讯专栏INFORMATION COLUMN

关于async的层次

fireflow / 323人阅读

摘要:最近看到一张关于的图其实是中的一张,挺有意思。最底层的就是现在的包括。使得编写程序看起来就像普通的程序一样。同时也支持的处理。中介绍的是第个层次。杨博,全球软件开发大会

最近看到一张关于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源码阅读笔记

    摘要:调度器有了迭代器,还需要一个调度器才能按照预期的流程串行执行需要的函数,同时处理参数传递的过程我自己写的代码,调度的工作是由一起做的。 本文摘自我的博客,欢迎大家去逛逛。 又是两周没写博客了,圣诞夜来水一发~今天稍微看了下async的源码,感觉很简短精炼,总共也才1000多行代码,好多值得学习的地方。主要看的是waterfall模块,由于源码中有好多不同接口公用的部分,因此看完wate...

    Kaede 评论0 收藏0
  • 如何理解 koa 中间件执行机制

    摘要:注是先前版本处理异步函数的方式,通过可以将异步函数封装成,传入普通参数后形成仅需要参数的偏函数,以此简化调用代码目前中的偏函数已经被无情地化了。 前几天研究了TJ的koa/co4.x和一系列koa依赖的源码,在知乎上做出了人生首次回答(而且我真得再也不想去知乎回答技术问题了_(:з」∠)_),因此把文字搬到这里。 ES2015 Generator/Yield 关于Generator...

    charles_paul 评论0 收藏0
  • 记录一次搜狐面试(包括笔试题)

    摘要:协议主要是通过请求头当中的一些字段来和服务器进行通信,从而采用不同的缓存策略。会缓存所有的结构,但是问题在于,一些页面开始时进行的上报或者请求可能会被影响。 1.如何用一个div实现下图 showImg(https://segmentfault.com/img/bVbm8Rf?w=133&h=134); css #demo{ width:120px; h...

    tianhang 评论0 收藏0
  • 记录一次搜狐面试(包括笔试题)

    摘要:协议主要是通过请求头当中的一些字段来和服务器进行通信,从而采用不同的缓存策略。会缓存所有的结构,但是问题在于,一些页面开始时进行的上报或者请求可能会被影响。 1.如何用一个div实现下图 showImg(https://segmentfault.com/img/bVbm8Rf?w=133&h=134); css #demo{ width:120px; h...

    bladefury 评论0 收藏0
  • 记录一次搜狐面试(包括笔试题)

    摘要:协议主要是通过请求头当中的一些字段来和服务器进行通信,从而采用不同的缓存策略。会缓存所有的结构,但是问题在于,一些页面开始时进行的上报或者请求可能会被影响。 1.如何用一个div实现下图 showImg(https://segmentfault.com/img/bVbm8Rf?w=133&h=134); css #demo{ width:120px; h...

    rozbo 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<