摘要:翻译疯狂的技术宅原文本文首发微信公众号欢迎关注,每天都给你推送新鲜的前端技术文章随着使用的不断增加,异步事件驱动的应用程序变得越来越流行。本文首发微信公众号欢迎关注,每天都给你推送新鲜的前端技术文章
翻译:疯狂的技术宅
原文: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
摘要:首先,需要来理清一些基础的计算机编程概念编程哲学与设计模式计算机编程理念源自于对现实抽象的哲学思考,面向对象编程是其一种思维方式,与它并驾齐驱的是另外两种思路过程式和函数式编程。 JavaScript 中的原型机制一直以来都被众多开发者(包括本人)低估甚至忽视了,这是因为绝大多数人没有想要深刻理解这个机制的内涵,以及越来越多的开发者缺乏计算机编程相关的基础知识。对于这样的开发者来说 J...
摘要:大潮来袭前端开发能做些什么去年谷歌和火狐针对提出了的标准,顾名思义,即的体验方式,我们可以戴着头显享受沉浸式的网页,新的标准让我们可以使用语言来开发。 VR 大潮来袭 --- 前端开发能做些什么 去年谷歌和火狐针对 WebVR 提出了 WebVR API 的标准,顾名思义,WebVR 即 web + VR 的体验方式,我们可以戴着头显享受沉浸式的网页,新的 API 标准让我们可以使用 ...
摘要:阅读小札一阅读前自大学课上,就开始接触设计模式,但对设计模式却鲜有研究与实践。第二部分是核心部分,由浅到深讲解个设计模式。设计模式遵循的原则所有设计模式罪训的一条原则就是找出程序中变化的地方,并将变化封装起来。 阅读小札 · 阅读前 自大学Java课上,就开始接触设计模式,但对设计模式却鲜有研究与实践。最近向公司反映和游说技术提升,得以获得公司提供购书机会,借此认真学习前端学习之路的...
阅读 3106·2021-11-19 09:40
阅读 2416·2021-10-14 09:42
阅读 1660·2021-09-22 15:34
阅读 1422·2019-08-30 15:55
阅读 743·2019-08-29 12:59
阅读 389·2019-08-28 18:28
阅读 1786·2019-08-26 13:42
阅读 1503·2019-08-26 13:29