翻译:疯狂的技术宅
原文: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
欢迎关注,每天都给你推送新鲜的前端技术文章


浅议 JavaScript 的 Promises/Futures 模式相关推荐

  1. JavaScript 中的 require / exports、import / export、浅谈JavaScript、ES5、ES6

    Node.js 的基础教学 之 exports 和 module.exports:https://zhuanlan.zhihu.com/p/82057593 浅谈 JavaScript.ES5.ES6 ...

  2. 原创 | 浅议个人数据开发利用新范式

    在所有数据资产类型中,个人数据的开发利用潜在价值巨大.个人数据在过去几十年里,已经得到前所未有的开发和利用,推动了经济增长和社会发展.但与此同时,也逐渐引发越来越凸出的经济.社会和伦理道德问题. Ap ...

  3. 对计算机基础知识的一点感想,浅议对《计算机应用基础》教学感想.doc

    浅议对<计算机应用基础>教学感想 浅议对<计算机应用基础>教学感想摘要:针对计算机文化基础课程改革实践中存在的某些问题,文章总结了在课程体系.教学内容.教学方法.教学手段及教学 ...

  4. 浅议初中语文微写作(语文教师论文)

    浅议初中语文微写作 前言: 从汉字源流来看,"微"字引申为"细微的""精妙.深奥的"等,从"微"字的释义来看,可以对&q ...

  5. 合理运用计算机技术学校,浅议在学校管理中计算机技术合理应用

    浅议在学校管理中计算机技术合理应用 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 浅议在学校管理中计算机技术合理应用[摘 要]目前,随 ...

  6. 网购使用的计算机网络技术,浅议计算机网络技术的应用与发展

    于卓鑫 摘要:在社会日益进步的背景下,计算机发展迅速,而当前计算机领域的核心技术是计算机网络技术,具备共享资源的优势,逐渐普及到人们的生活以及工作中.伴随着人们生活质量的日益提升,其对计算机有更多的要 ...

  7. 计算机在生活中的应用论文2000字,浅议计算机在生活中的应用论文(2)

    浅议计算机在生活中的应用论文篇二 <浅谈计算机网络在生活中的应用> 摘要:进入21世纪科技高速发展,特别是计算机网络的进一步发展,计算机的应用更为普遍,计算机网络的应用已经渗透到社会的各个 ...

  8. 计算机课堂如何落实知识点,浅议怎样组织计算机课堂教学原稿

    <浅议怎样组织计算机课堂教学(原稿).doc>由会员分享,可免费在线阅读全文,更多与<浅议怎样组织计算机课堂教学(原稿)>相关文档资源请在帮帮文库(www.woc88.com) ...

  9. html 滚动条 scrolltop scrollheight,浅谈JavaScript中scrollTop、scrollHeight、offsetTop、offsetHeight...

    浅谈JavaScript中scrollTop.scrollHeight.offsetTop.offsetHeight 发布时间:2020-07-17 09:27:20 来源:亿速云 阅读:223 作者 ...

最新文章

  1. C/C++难题的高赞回答「中文版」,帮你整理好了
  2. [bzoj4034]树上操作
  3. spark mllib源码分析之DecisionTree与GBDT
  4. apache/nginx/tomcat的区别
  5. 18 Context与组合的应用场景与使用问题
  6. 你所不知道的setTimeout
  7. Flex及AIR开发资源集合
  8. unity shader base pass and additional pass
  9. Linux O(1)调度器
  10. Nginx 作为静态资源服务器,配置静态资源下载
  11. android 视频编辑应用,安卓视频剪辑软件推荐
  12. 检查型异常有哪些java_JAVA系列之检查型异常与非检查型异常的详解
  13. ThinkPad 笔记本BIOS设置手册
  14. oracle 10g 10053事件
  15. 分享在实际项目中积累的硬件调试经验 - 调试方法,以及常见调试案例
  16. Pytorch tutorial pytorch 入门
  17. Linux常用命令——rsync命令
  18. 奇淫技巧 | route命令设置网络优先级
  19. 健身运动燃烧脂肪的三个必要条件
  20. python 网站爬虫 下载在线盗墓笔记小说到本地的脚本

热门文章

  1. 阿里NASA计划:城市大脑成智能研究第一平台
  2. MySQL · myrocks · myrocks统计信息
  3. JS原始类型:数值的运用技巧
  4. POJ 2186 Tarjan
  5. SVN服务器搭建--Subversio与TortoiseSVN的配置安装
  6. Nagios—服务和性能监控
  7. Android 定制RadioButton样式
  8. NOSQL系列-memcached安装管理与repcached高可用性
  9. Outlook2010 Bug 一则
  10. ASP.NET 2.0编程技巧之用Response对象输出图像