资讯专栏INFORMATION COLUMN

异步序列流程 v1.0

lcodecorex / 1509人阅读

摘要:初学给我最头疼的地方差不多就是流程控制了,因为我曾经写过后缀非常长的,痛苦异常。第页前后讲了一些流程控制库,最近尝试过用做一些模式的流程控制。其中实现的原理就是在中返回一个对象,类似的使用方式如下。

大家好,第一次在 SegmentFault 上写博客,之前是在 GitHub 上用repo的issue特性写的。不仅仅是为了 GFM 还是因为自己文笔不好,所以有想把自己隐藏起来的想法,我想想这样对自己的进步实在是非常不易的。所以还是决定到一个阳光的地方把自己的小小的积累写出来吧。

废话不多,最近朴灵大大的 《深入浅出Node.js》 估计已经火遍半边天了。盯了好久,我也终于入手了。里面一些章节也写的很棒,我想在第一次粗略浏览的时候做一些读书笔记吧。

初学Node.js给我最头疼的地方差不多就是流程控制了,因为我曾经写过后缀非常长的 })})})}),痛苦异常。查阅了很多资料想解决这个问题,后来因为一些其他原因的关系,暂时停止了node的学习,这个问题就一直保留在心里。我也曾粗略翻阅了ByVoid的书籍也没有找到答案,这次的深入浅出总算给了我一个不错的答案。

第93页前后讲了一些流程控制库,最近尝试过用 Deferred 做一些Promise模式的流程控制。关键API函数就是 then 利用 promisify 创建一个 Deferred Object。其中实现的原理就是在then中返回一个 Promise 对象,类似的使用方式如下。

var readFileAsync = promisify(fs.readFile);
readFileAsync("file1.txt").then(function (content) {
   return readFileAsync("file2.txt");
}).then(function (content) {
   console.log(content);     
});

如果是Async库,则使用一个强大的API叫做waterfall

async.waterfall([
    function (callback) {
        fs.readFile("file1.txt", function (err,content) {
            callback(err,content);
        }
    },
    function (arg1, callback) {
        fs.readFile(arg1, function (err,content) {
        });
    }
]);

我觉得waterfall是很棒的实践。

今天就先读了这么多,下次继续写

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/77980.html

相关文章

  • 你不知道的JavaScript(ES6与之未来)

    摘要:然而,临近规范发布时,有建议提及未来的版本号切换为编年制,比如用同来指代在年末前被定稿的所有版本。总得来说就是版本号不再那么重要了,开始变得更像一个万古长青的活标准。 你不知道的JS(下卷)ES6与之未来 第一章:ES的今与明 在你想深入这本书之前,你应该对(在读此书时)JavaScript的最近标准掌握熟练,也就是ES5(专业来说是ES 5.1)。在此,我们决定全方面地谈论关于将近的...

    Julylovin 评论0 收藏0
  • 通过ES6 Generator函数实现异步流程

    摘要:换句话说,我们很好的对代码的功能关注点进行了分离通过将使用消费值得地方函数中的逻辑和通过异步流程来获取值迭代器的方法进行了有效的分离。但是现在我们通过来管理代码的异步流程部分,我们解决了回调函数所带来的反转控制等问题。 本文翻译自 Going Async With ES6 Generators 由于个人能力知识有限,翻译过程中难免有纰漏和错误,还望指正Issue ES6 Gener...

    刘厚水 评论0 收藏0
  • 异步流程控制:7 行代码学会 co 模块

    摘要:而在中是迭代器生成器,被创造性的拿来做异步流程控制了。当执行的时候,并不执行函数体,而是返回一个迭代器。行代码再看看文章开头的行代码首先生成一个迭代器,然后执行一遍,得到的是一个对象,里面再执行。 广告招人:阿里巴巴招前端,在这里你可以享受大公司的福利和技术体系,也有小团队的挑战和成长空间。联系: qingguang.meiqg at alibaba-inc.com 首先请原谅我的标题...

    tinna 评论0 收藏0
  • 工作中常用es6+特性

    摘要:结合工作中使用情况,简单对进行一些复习总结,包括常用的语法,等,以及短时间内要上手需要重点学习的知识点不同工作环境可能有一些差别,主要参考链接是阮一峰的博客以及外文博客阮老师大部分文章是直接翻译的这个博客简介先说一下,是一个标准化组织,他们 结合工作中使用情况,简单对es6进行一些复习总结,包括常用的语法,api等,以及短时间内要上手需要重点学习的知识点(不同工作环境可能有一些差别),...

    xcold 评论0 收藏0

发表评论

0条评论

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