Javascript Promise 中的resolve和reject实际上做了什么

2023-12-08

起初,我认为resolve只需将参数传递给函数即可then,所以我尝试了这个

const promise = new Promise((resolve, reject) => {
  resolve(new Promise(resolve => resolve(2333)))
})
// promise.then(innerPromise => {
//   innerPromise.then(num => console.log(num))
// })
promise.then(num => console.log(num))

注释的行出现错误:innerPromise.then is not a function,所以我假设resolve如果你有一个promise作为参数,首先会帮你处理里面的promise

所以我尝试了reject,我认为会是一样的

const promise = new Promise((resolve, reject) => {
  reject(new Promise(resolve => resolve(2333)))
})
promise.then(null, innerPromise => {
  innerPromise.then(num => console.log(num))
})
// promise.then(null, num => console.log(num))

未注释的行将记录2333,注释的行将简单地记录被拒绝的Promise实例


Resolve 是一个回调,用于返回另一个 Promise 的值或结果。

因此,当您在第一个块中执行以下代码时:

const promise = new Promise((resolve, reject) => {
  resolve(new Promise(resolve => resolve(2333)))
})

promise.then(innerPromise => {
      console.log(innerPromise)
//    innerPromise.then(num => console.log(num))
})

promise.then(num => console.log(num))

你会发现Resolve会自动执行内部函数,从而得到resolve内部函数的最终结果。其次,明确提到“解决”返回一个 'Value'而不是可调用对象。因此,您不能像函数一样调用 Promise 的结果。

在拒绝的情况下,拒绝回调用于拒绝带有提供的原因或错误的承诺。您可以返回任何语句(代表错误)或从错误代码返回错误消息的可调用对象。 (这就是我使用拒绝从生成的错误代码中获取消息的方式)

好吧,您可以在这里阅读更多内容:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript Promise 中的resolve和reject实际上做了什么 的相关文章

随机推荐

  • PHP中socket编程获取客户端IP

    我正在使用 PHP 编写一个使用套接字库的应用程序 如何获取客户端的IP 谢谢你的帮助 Use 套接字获取对等点名称
  • 我真的需要为 const 对象实现用户提供的构造函数吗?

    我有代码 class A public A default private int i 1 int main const A a return 0 它在 g 上编译得很好 参见ideone 但在 clang 上失败并出现错误 const 类
  • Three.js - 绕特定轴旋转对象

    我用过三个 REVISION 68 我已经按轴完成了旋转 OBJECT X z http jsfiddle net eVkgs 39 当我更改位置 OBJECT X 时 CubeGeometry applyMatrix new THREE
  • 如何让 Spring Data Neo4j 和 Spring Data JPA 协同工作?

    我有一个应用程序 它使用 MySQL 并通过 REST Neo4j 服务器版本执行一些批处理作业 我不知道如何让它们正确地协同工作 我可以让它们同时工作 但不能同时工作 我发现的帖子并不特定于 Neo4j 的服务器版本 也许这就是问题所在
  • Python 写入 .txt 文件时换行符“\n”不起作用

    for word in keys out write word str dictionary word n out open alice2 txt r out read 由于某种原因 Python 并没有为字典中的每个单词换行 而是在每个键
  • 使用 TFS 2015 .NET 客户端库从模板创建构建定义

    我正在使用 NET 客户端库VSTS TFS 2015 根据我在另一个团队项目中获取的模板以编程方式创建构建定义 我可以使用以下方法获取构建定义模板 2 0 BuildDefinitionTemplate builddeftemplate
  • 通过 std::bit_cast()ed 指针进行别名访问

    违反严格别名规则会产生未定义的行为 例如当通过网络将结构发送到 char 缓冲区时 然后该 char 指针是 C 风格 std reinterpret cast 转换为结构体指针 The C std bit cast 功能看起来它可以用来以
  • 带乳胶的轴刻度标签的无衬线字体

    我第一次尝试将 Latex 与 matplotlib 一起使用 似乎在使用 Latex 时 matplotlib 使用衬线字体作为轴标签 我尝试使用显式将字体系列设置为 sans serif rc font family sans seri
  • 如何更改 WPF 中 TextBox 的禁用背景颜色

    我看到以下与我的问题相关的线程 WPF ComboBox 禁用时的背景颜色 上面涉及更改内容模板ComboBox 我正在使用 WPF 对样式和模板有些陌生 我想更改禁用的暗灰色背景颜色TextBox到其他颜色 我们用TextBoxes在我们
  • 用于没有固定列的 HTML 动态布局的 CSS?

    我想设置这样的布局 两列都是动态的 一个由内容设置 第二个由第一列和最小宽度设置 我找到了许多解决方案 其中列的宽度是固定的 但它没有解决这个问题 看看我想要在屏幕上实现什么 我应该使用什么CSS 对于这样的东西有不同的方法 一个简单的方法
  • 将 vertex.label 放置在 igraph 中的圆形布局之外

    我有一个圆形布局 igraph 我希望顶点标签显示在圆形区域之外 尝试玩周围vertex label cex and vertex label degree但没有用 请指教 vertex label degree需要一些认真的 但简单的 调
  • matplotlib 动画保存不遵守 blit=True 但它似乎在 plt.show() 中工作得很好

    我对 Python 很陌生 正在尝试使用 matplotlib 对文本进行动画处理 使用几个在线示例得出以下代码 import matplotlib pyplot as plt import matplotlib animation as
  • 如何在 Mac OS X 中获取指向二进制部分的指针?

    我正在编写一些代码 将一些数据结构存储在一个特殊的命名二进制部分中 这些都是同一结构的实例 分散在许多 C 文件中 并且不在彼此的范围内 通过将它们全部放在指定的部分中 我可以迭代它们 这与 GCC 和 GNU ld 完美配合 由于缺少而在
  • 核心数据设计——如何同时拥有应用数据和用户数据?

    我遇到的情况是 我有一组随我的应用程序附带的基本信息 用户可以添加或编辑此信息 但有时 我需要能够更新基础数据 我不想触及用户更改 添加 我看过这个问题 但所使用的类比有点陌生 这一定是一个常见问题 我希望听到此类混合数据集的实践和经验 我
  • 如何使用多项逻辑回归解决多标签分类问题?

    我必须根据其他属性来预测学生所在的课程类型 prog是一个分类变量 指示学生所在课程的类型 普通 1 学术 2 或 职业 3 Ses是一个分类变量 表示某人的社会经济阶层 低 1 中 2 和 高 3 read write math scie
  • 在R中绘制频率密度直方图

    使用 R 任何人都可以告诉我如何绘制一个简单的直方图 并且以下数据的箱之间没有间隙 Class Width Freq Dist 0 lt x lt 5 0 2 5 lt x lt 15 0 1 15 lt x lt 20 1 2 20 lt
  • 主键和外键

    我有3张桌子 Student Loan Book StudentID LoanID BookID 我需要设置哪些外键 以便在给出学生姓名时 搜索该学生的所有贷款并显示书籍详细信息 这是从如此模糊的要求开始的 CREATE TABLE dbo
  • 如何处理用户离开对话

    我们有使用 OnMembersAddedAsync 方法的欢迎示例 但没有示例显示如何处理用户离开对话 我尝试覆盖 OnMembersRemovedAsync 但它似乎没有被调用 至少当我使用机器人框架模拟器时 我需要在用户离开 离开对话时
  • Holoviews 相关热图和回归图的点击流

    我想为 DataFrame 制作一个相关热图 并为每对变量制作一个回归图 我已尝试阅读所有文档 但仍然很难连接两个图 以便当我点击热图时 可以显示相应的回归图 这是一些示例代码 import holoviews as hv from hol
  • Javascript Promise 中的resolve和reject实际上做了什么

    起初 我认为resolve只需将参数传递给函数即可then 所以我尝试了这个 const promise new Promise resolve reject gt resolve new Promise resolve gt resolv