资讯专栏INFORMATION COLUMN

浅议 JavaScript 的 Promises/Futures 模式

Jason_Geng / 1399人阅读

摘要:翻译疯狂的技术宅原文本文首发微信公众号欢迎关注,每天都给你推送新鲜的前端技术文章随着使用的不断增加,异步事件驱动的应用程序变得越来越流行。本文首发微信公众号欢迎关注,每天都给你推送新鲜的前端技术文章

翻译:疯狂的技术宅
原文:http://davidshariff.com/blog/...

本文首发微信公众号:jingchengyideng
欢迎关注,每天都给你推送新鲜的前端技术文章

随着 JavaScript 使用的不断增加,异步事件驱动的应用程序变得越来越流行。 但是,许多开发者经常面临的一个问题是:在异步环境中进行依赖于结果的操作。

你可能经常会遇到类似的情况:

doA(function(aResult) {
    // 在b内做一些事情然后开始回调
    doB(aResult, function(bResult) {
        // b完成后,在c中做一些事情并开始回调
        doC(bResult, function(cResult) {
            // 完成后,在这里用doC()的结果做一些事情
        });
    });
});

由于每个步骤都需要前面的步骤结果,所以经常会看到在回调中嵌套回调函数的模式。 这些嵌套回调最终会难以在较大的异步应用程序中维护、理解和规范。 简单的异步流程会变得越来越复杂。

在这种情况下使用的解决方案是 Promise/Futures 模型,它表示尚未发生的回调结果。 这个概念非常简单,它不是在一个函数返回结果之前阻塞并等待其完成,而是在调用对象时立即返回其承诺的将要完成的结果。 这会导致非阻塞行为:

doA()
    .then(function() { return doB(); })
    .then(function() { return doC(); })
    .done(function() { /* 在这里做最后要做的事情 */ });

使用 Promise / Future 模型编写代码可以享受到使用嵌套回调的大部分优点,同时能够使代码更清晰,更结构化,在大多数异步环境下,这些代码更易于维护,理解和规范。

Promise / Future 并不是最终解决方案,还有很多其他解决方案,这些解决方案也都有各自的优缺点,应该针对不同的情况使用它们。

本文首发微信公众号:jingchengyideng
欢迎关注,每天都给你推送新鲜的前端技术文章

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

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

相关文章

  • 计算机网络(HCIP、HCIE)系列文章大合集

    摘要:近期,我写了很多计算机网络系列文章,适合备考人员查阅,先将各文章整理如下衷心建议您收藏,慢慢查阅一基础入门知识计算机网络基础计算机网络误区源目和源目变化问题计算机网络误区中和原理详解计算机网络误区为什么我的包发不出去计 ...

    gitmilk 评论0 收藏0
  • CSS及布局

    摘要:经过半年的打磨,正式发布,主要是新增了一些常用组件,并使用命名,为接下来的微信小程序开发做好准备。这两种方式实现的瀑布流式布局均支持首屏和网页窗口大小改变时的列数自适应。主要是对于标准里的布局方式草案中的布局方式进行一些总结。 一劳永逸的搞定 flex 布局 寻根溯源话布局 一切都始于这样一个问题:怎样通过 CSS 简单而优雅的实现水平、垂直同时居中。记得刚开始学习 CSS 的时候,看...

    jaysun 评论0 收藏0
  • 理解JavaScript核心知识点:原型

    摘要:首先,需要来理清一些基础的计算机编程概念编程哲学与设计模式计算机编程理念源自于对现实抽象的哲学思考,面向对象编程是其一种思维方式,与它并驾齐驱的是另外两种思路过程式和函数式编程。 JavaScript 中的原型机制一直以来都被众多开发者(包括本人)低估甚至忽视了,这是因为绝大多数人没有想要深刻理解这个机制的内涵,以及越来越多的开发者缺乏计算机编程相关的基础知识。对于这样的开发者来说 J...

    iKcamp 评论0 收藏0
  • JS或Jquery

    摘要:大潮来袭前端开发能做些什么去年谷歌和火狐针对提出了的标准,顾名思义,即的体验方式,我们可以戴着头显享受沉浸式的网页,新的标准让我们可以使用语言来开发。 VR 大潮来袭 --- 前端开发能做些什么 去年谷歌和火狐针对 WebVR 提出了 WebVR API 的标准,顾名思义,WebVR 即 web + VR 的体验方式,我们可以戴着头显享受沉浸式的网页,新的 API 标准让我们可以使用 ...

    CatalpaFlat 评论0 收藏0
  • JavaScript设计模式与开发实践》 —— <阅读小札·一>

    摘要:阅读小札一阅读前自大学课上,就开始接触设计模式,但对设计模式却鲜有研究与实践。第二部分是核心部分,由浅到深讲解个设计模式。设计模式遵循的原则所有设计模式罪训的一条原则就是找出程序中变化的地方,并将变化封装起来。 阅读小札 · 阅读前 自大学Java课上,就开始接触设计模式,但对设计模式却鲜有研究与实践。最近向公司反映和游说技术提升,得以获得公司提供购书机会,借此认真学习前端学习之路的...

    Yangder 评论0 收藏0

发表评论

0条评论

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