返回介绍

第一部分 类型和语法

第二部分 异步和性能

第3章 Promise

发布于 2023-05-24 16:38:21 字数 862 浏览 0 评论 0 收藏 0

在第 2 章里,我们确定了通过回调表达程序异步和管理并发的两个主要缺陷:缺乏顺序性和可信任性。既然已经对问题有了充分的理解,那么现在是时候把注意力转向可以解决这些问题的模式了。

我们首先想要解决的是控制反转问题,其中,信任很脆弱,也很容易失去。

回忆一下,我们用回调函数来封装程序中的 continuation,然后把回调交给第三方(甚至可能是外部代码),接着期待其能够调用回调,实现正确的功能。

通过这种形式,我们要表达的意思是:“这是将来 要做的事情,要在当前的步骤完成之后发生。”

但是,如果我们能够把控制反转再反转回来,会怎样呢?如果我们不把自己程序的 continuation 传给第三方,而是希望第三方给我们提供了解其任务何时结束的能力,然后由我们自己的代码来决定下一步做什么,那将会怎样呢?

这种范式就称为 Promise。

随着开发者和规范撰写者绝望地清理他们的代码和设计中由回调地狱引发的疯狂行为,Promise 风暴已经开始席卷 JavaScript 世界。

实际上,绝大多数 JavaScript/DOM 平台新增的异步 API 都是基于 Promise 构建的。所以学习研究 Promise 应该是个好主意,你以为如何呢?!

本章经常会使用“立即”一词,通常用来描述某个 Promise 决议(resolution)动作。但是,基本上在所有情况下,这个“立即”指任务队列行为(参见第 1 章)方面的意义,而不是指严格同步的现在

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文