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实际上做了什么 的相关文章

  • 如何在没有 jQuery 的情况下删除 Javascript 中的元素

    我试图通过以下方式从 DOM 中删除 Div a 标签嵌套在其中 我想我正在寻找的是 jQuery 的纯 Javascript 版本 div remove 这是html设置 div a href Click me to remove the
  • Angular.js:如何从无序列表中获取 orderBy 或过滤器来工作?

    尝试根据价格和评级 在返回的对象中 进行排序 我宁愿用 ng click 和 li 来代替使用选择菜单 有没有办法做到这一点 我环顾四周 这是我能想到的最接近的 ul class restaurant filter li i class i
  • S3.getSignedUrl 接受多种内容类型

    我正在使用react s3 uploader节点包 它接受一个signingUrl用于获取用于将对象存储到 S3 中的signedUrl 目前 我已经配置了一个 lambda 函数 带有 API 网关端点 来生成此signedUrl 经过一
  • 在版本 4.4.6 中禁用 ckeditor 上下文菜单

    我在 Rails4 项目中使用 ckeditor 我尝试了 ckeditor gem 和 ckeditor rails gem 来提供 ckeditor 库 这里有多个帖子 人们希望删除 ckeditor 上下文菜单 以便可以显示本机浏览器
  • 如何使用有角度的材料创建卡片网格?

    我正在尝试使用 ng repeat 创建每行三张卡片的网格 我有一个普通的 javascript 对象数组附加到范围 下面的代码将为每张卡创建一个新行 div div
  • 如何在Sequelize中设置查询超时?

    我想看看如何在 Sequelize 中设置查询的超时时间 我查看了 Sequelize 文档以获取一些信息 但我找不到我要找的东西 我发现的最接近的是 pools acquire 选项 但我不想设置传入连接的超时 而是设置正在进行的查询的超
  • JavaScript 验证和 PHP 验证?

    我正在使用 jquery 验证插件来验证空表单 我还应该在 PHP 中检查一下以确保 100 正确吗 或者用 javascript 验证就可以了 谢谢 您应该始终在服务器上进行验证 如果用户以某种方式不使用 Javascript 提交表单
  • JavaScript 中的 Promise 有什么意义?

    一个承诺是一个 可能现在可用 或将来可用 或永远不可用的值 来源 MDN 假设我有一个想要处理图片的应用程序 图片已加载 例如在算法在后台使用它之后 或某种其他类型的延迟 现在我想检查一下图片是否可以在future 通过使用承诺 而不是回调
  • 如何使用 Javascript 设置查询字符串

    有没有办法使用 javascript 设置查询字符串的值 我的页面有一个过滤器列表 单击该列表时 它将更改右侧的页内结果窗格 我正在尝试更新 url 的查询字符串值 因此如果用户离开页面 然后单击 后退 按钮 他们将返回到最后一个过滤器选择
  • onclick 事件中未调用函数

    我想在每个 YouTube 链接的末尾添加一些 HTML 以在 litebox 中打开播放器 到目前为止 这是我的代码 document ready function var valid url new RegExp youtube com
  • mongodb 聚合 - 累积字段的不同组值

    如果我有Player表格文件 name String score Int 我有Group文档 其中组代表玩家列表 groupName String players ObjectID 玩家可以属于多个组 我想做一个聚合Player文档 按以下
  • 如何正确取消引用然后删除 JavaScript 对象?

    我想知道从内存中完全取消引用 JavaScript 对象的正确方法 确保删除时不会在内存中悬空 并且垃圾收集器会删除该对象 当我看这个问题时在 JavaScript 中删除对象 https stackoverflow com questio
  • 如何计算特定字符在字符串中出现的次数

    我正在尝试创建一个函数来查看数组中的任何字符是否在字符串中 如果是 有多少个 我尝试计算每一种模式 但是太多了 我尝试使用 Python 中的 in 运算符的替代方案 但效果不佳 function calc fit element var
  • 使用 Google 日历源时如何禁用 FullCalendar 中的活动链接?

    我正在使用 FullCalendar 库从 Google 日历加载日历中的事件 不幸的是 事件添加到日历后 它们是可点击的 当您点击该活动时 您会自动重定向到 Google 日历页面以查看该特定活动 或者如果您有足够的访问权限 则可以直接对
  • LeafleteachLayer函数不会迭代所有Layer

    使用 GeoJSON 数据数组创建一些标记 getJSON GetLocationsServlet function data L geoJSON data onEachFeature onEachFeature addTo mymap G
  • JavaScript eval("{}") 返回行为?

    根据ECMA 262 规范 http www ecma international org publications files ECMA ST Ecma 262 pdf 以下语句返回1 eval 1 eval 1 eval 1 var a
  • Vaadin 12 将对象传递给 JavaScript 函数:无法对类进行编码

    Vaadin 12 Kotlin 项目 In my myPage html我有JavaScript myObject redirectToCheckout sessionId 1111 2222 所以我需要调用javaScript函数red
  • 使用 Jade 评估自定义 javascript 方法 (CircularJSON)

    我想通过 Jade 将一个对象解析为客户端 JavaScript 通常这会起作用 script var object JSON parse JSON stringify object but my object is circular ht
  • 使用 Enzyme 测试 `React.createRef` api

    我想测试下面的类 它使用React createRef api 不过 快速搜索并没有发现任何这样做的例子 有人成功过吗 我该如何嘲笑裁判 理想情况下我想使用shallow class Main extends React Component
  • Flot 库将 y 轴设置为最小值 0 和最大值 24

    如何将 y 轴设置在 0 到 24 的范围内 这是我的代码 j plot j placeholder d1 xaxis mode time min new Date 2010 11 01 getTime max new Date 2011

随机推荐

  • 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