未处理的拒绝错误 Bluebird

2024-01-15

我有以下代码。 它按预期工作,不会引发未处理的拒绝错误。

p = new Promise (fulfill, reject) ->
  reject new Error 'some error'

p.catch (error) ->
  console.log error

现在,第二个代码示例确实引发了未处理的拒绝错误。 有人可以向我解释为什么当我清楚地处理错误时会发生这种情况。

p = new Promise (fulfill, reject) ->
  reject new Error 'some error'

p.then ->
  console.log 'ok'

p.catch (error) ->
  console.log error

顺便提一句。我正在 chrome 和 bluebird v3.4.7 中进行测试


Per 错误管理配置 http://bluebirdjs.com/docs/api/error-management-configuration.html如果没有 catch 处理程序,Bluebird 会抛出错误挂号的当一个承诺被拒绝时,无需等待看看将来是否会添加一个承诺。请注意,检查拒绝处理程序应该与设置 Promise 链的线程异步完成。正如他们所说,“某些编程模式会导致误报”。对真的?

另一方面,未捕获的异常错误不是 ES6 标准的一部分,实现以不同的方式处理它们:Firefox 等待或习惯等待,直到 GC 时间,而 Chrome 超时(或习惯超时)并显示“可能未捕获”承诺拒绝”错误。

请参阅 Bluebird 文档,了解 Bluebird 在附加处理程序之前承诺出现哪些错误的可能解决方案。


但是由于这两个示例都同步附加了 Promise 的拒绝处理程序p,例外的原因似乎在其他地方。

感谢@DJ 的回答,但有不同的解释。在第二个例子中,then返回一个被拒绝的承诺,如果p被拒绝,并且没有拒绝处理程序。返回的承诺.then很可能是抛出错误的人。

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

未处理的拒绝错误 Bluebird 的相关文章

  • 如何测试 javascript 闭包内的函数

    这似乎是不可能的 也可能是 但我正在尝试更多的 TDD 但我总是在闭包方面碰壁 假设我有以下内容 function createSomething init function privateMethod param return init
  • 了解设置 JQuery 变量

    了解设置 JQuery 变量 最近 我通过在 StackOverflow 上遇到的另一个问题寻找帮助 了解到如何设置 JQuery 变量 如下所示 您可以通过简单地调用变量来创建输入字段 并且锚变量似乎也定义了样式 var clicked
  • 不和谐机器人 |不和谐.js |类型错误:无法读取未定义的属性“长度”

    我正在制作一个 Discord 机器人 并且正在使用 CodeLyon 的视频作为参考 该错误位于我的 message js 文件中 该文件包含以下内容 require dotenv config create cooldowns map
  • 在 Vue.js 中从父组件执行子方法

    目前 我有一个 Vue js 组件 其中包含其他组件的列表 我知道使用 vue 的常见方式是将数据传递给孩子 并从孩子向父母发出事件 但是 在这种情况下 我想在子组件中的按钮出现时执行子组件中的方法 parent被点击 哪种方法最好 一种建
  • 解析“流”JSON

    我在浏览器中有一个网格 我想通过 JSON 将数据行发送到网格 但浏览器应该在接收到 JSON 时不断解析它 并在解析时将行添加到网格中 换句话说 在接收到整个 JSON 对象后 不应将行全部添加到网格中 应该在接收到行时将其添加到网格中
  • 使用 JavaScript 使链接保持活动状态并在单击时显示悬停效果

    I am struggling to make this work I d like to make it where if O F is clicked the hover state stays active if another li
  • 标签获取 href 值

    我有以下 html div class threeimages a img alt Australia src Images Services 20button tcm7 9688 gif a div class text h2 a hre
  • 音频 blob 的 URL.createObjectURL 在 Firefox 中给出 TypeError

    我正在尝试从创建的音频 blob 创建对象 URLgetUserMedia 该代码在 Chrome 中可以运行 但在 Firefox 中存在问题 错误 当我打电话时stopAudioRecorder 它停在audio player src
  • 在requestAnimationFrame中使用clearRect不显示动画

    我正在尝试在 HTML5 画布上做一个简单的 javascript 动画 现在我的画布是分层的 这样当我收到鼠标事件时 背景层不会改变 但带有头像的顶层会移动 如果我使用 requestAnimationFrame 并且不清除屏幕 我会看到
  • Babel 7 Jest Core JS“TypeError:wks不是函数”

    将我的项目升级到 Babel 7 后 通过 Jest 运行测试会抛出以下错误 测试在 Babel 6 中运行没有任何问题 但在 Babel 7 中失败并出现以下错误 TypeError wks is not a function at Ob
  • 如何使输入字段和提交按钮变灰

    我想变灰这两件事 http doorsplit heroku com 歌曲输入字段和提交按钮 直到用户输入艺术家 有没有一种简单的方法可以通过 JQuery 来做到这一点 艺术家输入字段的id是 request artist 你可以这样做
  • 提交表单并重定向页面

    我在 SO 上看到了很多与此相关的其他问题 但没有一个对我有用 我正在尝试提交POST表单 然后将用户重定向到另一个页面 但我无法同时实现这两种情况 我可以获取重定向或帖子 但不能同时获取两者 这是我现在所拥有的
  • Grails 在 javascript 内的 GSP 站点中使用 grails var

    我有一个在 GSP 文件中的 javascript 代码中使用 grails 变量值的问题 例如 我有一个会话值session getAttribute selectedValue 我想在 javascript 代码部分使用这个值 我现在的
  • 稍后解决承诺

    我想构建一个 Promise 但将解决方案推迟到以后 下面的代码创建了一个承诺 但它立即得到解决 我如何控制承诺何时被评估 var p new Promise resolve reject gt resolve 1 then p1 gt c
  • 模块构建失败(来自 ./node_modules/babel-loader/lib/index.js)Vue Js

    我从 GitHub 下载了一个我和我的朋友正在开发的项目 但是当我尝试运行时 npm run serve 我收到这个错误 src main js 中的错误 Module build failed from node modules babe
  • 为什么我不能在 AngularJS 中使用 data-* 作为指令的属性名称?

    On the t他的笨蛋 http plnkr co edit l3KoY3 p preview您可以注意到属性名称模式的奇怪行为data 在指令中 电话 Test of data named attribute br
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 如何获取浏览器视口中当前显示的内容

    如何获取当前正在显示长文档的哪一部分的指示 例如 如果我的 html 包含 1 000 行 1 2 3 9991000 并且用户位于显示第 500 行的中间附近 那么我想得到 500 n501 n502 或类似的内容 显然 大多数场景都会比
  • 在 React.js 中编辑丰富的数据结构

    我正在尝试为数据结构创建一个简单的基于网格的编辑器 但我在使用 React js 时遇到了一些概念问题 他们的文档对此没有太大帮助 所以我希望这里有人可以提供帮助 首先 将状态从外部组件传输到内部组件的正确方法是什么 是否有可能将内部组件中
  • 使用 Ajax 请求作为源数据的 Jquery 自动完成搜索

    我想做的事 我想使用 jquery 自动完成函数创建一个输入文本字段 该函数从跨域curl 请求获取源数据 结果应该与此示例完全相同 CSS 在这里并不重要 http abload de img jquerydblf5 png http a

随机推荐

  • 通用 Windows 平台/UAP:什么是 AOT?

    我最近在 Visual Studio 2015 中创建了一个空白的 UWP 应用程序 然后尝试向该应用程序添加 nuget 包 软件包安装失败并导致输出窗口中出现以下消息 System Reflection Emit ILGeneratio
  • 通过vb.net监控计算机输入/输出的数据

    我想使用 vb net 创建 Windows 带宽计 但我似乎无法在 net 框架中找到任何用于监视输入或输出数据量的内容 我想创造这个 因为我无法免费找到一个好的东西 而且我认为这是人们可能想要的东西 如果 net 框架中没有任何内容可以
  • 为什么写入一个关闭的 TCP 套接字比读取一个更糟糕?

    当您读取关闭的 TCP 套接字时 您会收到一个常规错误 即它返回 0 表示 EOF 或 1 以及错误代码errno可以打印perror http www opengroup org onlinepubs 000095399 function
  • 不使用 jquery 处理元素外部的点击

    我想实现这样的解决方案 如何检测元素外部的点击 https stackoverflow com questions 152975 how to detect a click outside an element 但我正在使用另一个已经定义了
  • 呈现弹出视图时,如何让用户在父集合视图中选择单元格?

    我有一个集合视图 当选择一个单元格时 它会显示一个弹出窗口视图 显示有关该单元格的更多信息 我想允许用户单击另一个单元格 然后将弹出窗口视图更改为显示该单元格的信息 而无需关闭弹出窗口 如果用户要单击父视图上不是单元格的某个位置 则弹出窗口
  • 正则表达式匹配方括号

    我正在解析一个日志文件 并试图为以下标记编写正则表达式 sshd 7623 我可以匹配 sshd 字符串 但是当匹配左方括号时 perl 只是抛出一个关于缺少右方括号的错误 如果我尝试同时匹配两者 如下所示 我也不会发现 re1 d re2
  • QAbstractItemModel 和 QTreeView [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我需要在 QtreeView 中显示
  • Python with selenium:无法找到真正存在的元素

    我一直在尝试填充输入
  • 使用 JSON 将哈希数组写入文件?

    目前我正在这样做 badLinks Array new badLinksFile File new arrayFilePath badLinks txt w badLinksFile puts badLinks to json 数组badL
  • 使用 Java 8 构造时创建 Bean 时出现 ArrayOutOfBoundsException

    我正在得到一个ArrayIndexOutOfBoundsException当我使用 Java 8 功能时 服务启动 Bean 创建 Java 8 已设置并已开始运行 代码编译正确 服务启动时 服务无法侦听端口 因为未创建 Bean 当我更改
  • JSF:验证两个字段中提供的值或都不验证其中的值

    我有两个表示数据范围的字段 从 和 到 我需要检查两个字段是否都没有填写 因此只有当一个字段被填写而不是第二个字段时 才会显示验证消息 我怎样才能做到这一点 我偷了这个自定义验证器并将其添加到两个字段 因为 JSF 不验证空字段 但它总是显
  • Android Socket 异常“套接字已关闭”

    当我尝试使用以下代码运行由 echo 服务器和 android 客户端组成的测试时 我总是收到异常消息 套接字已关闭 这段代码可以简单地向服务器发送消息 并从服务器接收消息 但是如果你想同时执行这两个操作 它就行不通 我很好奇为什么它会导致
  • 在bash中设置带前导数字的环境变量

    我需要在 bash 中设置一个名为 64bit 即带有前导数字 的环境变量 但是 bash 变量名称不允许变量带有前导数字 我知道调用 bash 时设置它的方法 env 64bit 1 usr bin bash 但是 我正在寻找一种在当前运
  • 无法解析 R.java,重复的类

    我刚刚开始使用 Android Studio 一周 它对我来说非常有用 但是当我今天启动 Android Studio 时 我收到错误 错误 重复的类 mypackage R 我之前在使用 Eclipse 时看到过这个错误 所以我尝试重建项
  • 使 EF4.3 Code First 迁移忽略挂起的迁移

    我有一个最近使用创建的数据库的本地实例DbContext Database Create 所以 MigrationHistory表存在一个InitalCreate与当前代码匹配的条目 但是 一些基于代码的迁移存在于 Migrations 文
  • mod_rewrite:允许重定向但阻止直接访问

    我目前正在使用 mod rewrite 进行内部重定向 RewriteCond REQUEST URI pattern RewriteRUle file php 但是我想阻止直接访问file php通过将对该文件的请求重定向到找不到页面的
  • 如何将 MediaRecorder 录制的视频长度读取到通过 context.getFilesDir() 构建的私有应用程序存储目录中?

    我在使用 MediaRecorder 读取设备摄像头录制的视频文件的长度 持续时间时遇到一个奇怪的问题 该文件被记录到应用程序的私有存储目录 中 设置如下 mMediaRecorder setOutputFile context getFi
  • UIPanGestureRecognizer - 仅垂直或水平

    我有一个观点UIPanGestureRecognizer垂直拖动视图 所以在识别器回调中 我只更新 y 坐标来移动它 该视图的超级视图有一个UIPanGestureRecognizer这将水平拖动视图 仅更新 x 坐标 问题是第一个UIPa
  • SQL Server 代理作业运行缓慢

    我正在 SQL Server 2005 中使用 SQL Server 代理作业执行存储过程 直到昨天 这项工作进展得很快 从昨天开始 这项工作需要 1 个多小时 而不是 2 分钟 我在SSMS中执行了存储过程 只用了不到1分钟就执行完了 我
  • 未处理的拒绝错误 Bluebird

    我有以下代码 它按预期工作 不会引发未处理的拒绝错误 p new Promise fulfill reject gt reject new Error some error p catch error gt console log erro