翻译:疯狂的技术宅原文:http://davidshariff.com/blog/futures-and-promises-in-javascript/

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

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

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

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

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

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

©著作权归作者所有:来自51CTO博客作者mb5ff980b461ced的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 超级好用的RabbitMQ 消息 100% 投递的解决方案!
  2. 全息金融行业数据安全解决方案
  3. 关于新版Anaconda(v5.1.0)安装后可能出现的跟 nodejs 错误相关问题
  4. php文件锁产生的问题和解决方案(一个真实案例)
  5. PHP 并发场景的 3 种解决方案
  6. 详细解说三种PHP嵌套HTML的写法
  7. 分享几种PHP并发场景的解决方案
  8. PHP下ajax跨域的解决方案之window.name实例分析详解
  9. 分析PHP下ajax跨域的解决方案之jsonp实例

随机推荐

  1. Android 修改开机动画(bootanimation)
  2. Android 支持网络协议以及简单用法
  3. Android 基础知识点(持续更新)
  4. android强制隐藏软键盘以及取消EditText
  5. Android Studio 导入so
  6. uiautomatorviewer.bat的使用
  7. 获取apk信息工具(android SDK的aapt工具)
  8. android多框架实现短视频应用、3D手势旋
  9. 自定义Dialog的几种实现方式
  10. Android开发人员必备的10 个开发工具