如何拒绝来自 then 函数内部的承诺

2024-01-18

这可能是一个愚蠢的问题,但是在承诺链中,如何拒绝来自 then 函数之一的承诺?例如:

someActionThatReturnsAPromise()
    .then(function(resource) {
        return modifyResource(resource)
    })
    .then(function(modifiedResource) {
        if (!isValid(modifiedResource)) {
            var validationError = getValidationError(modifiedResource);
            // fail promise with validationError
        }
    })
    .catch(function() {
        // oh noes
    });

不再引用原始的解析/拒绝函数或 PromiseResolver。我是否应该添加return Promise.reject(validationError); ?


我是否应该添加return Promise.reject(validationError);?

是的。然而,就是这么复杂 https://stackoverflow.com/questions/10843297/throwing-an-error-in-jquerys-deferred-object仅在 jQuery 中,带有承诺/A+ http://promisesaplus.com/-兼容的库你也可以简单地

throw validationError;

所以你的代码看起来像

someActionThatReturnsAPromise()
    .then(modifyResource)
    .then(function(modifiedResource) {
        if (!isValid(modifiedResource))
            throw getValidationError(modifiedResource);
        // else !
        return modifiedResource;
    })
    .catch(function() {
        // oh noes
    });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何拒绝来自 then 函数内部的承诺 的相关文章

  • 仅当表单已提交时才触发 jQuery 表单验证?

    不引人注目的验证基于这样的想法 don t进行表单验证 直到用户提交表单 一旦发生这种情况 如果表单上的某些内容无效 那么一旦用户更改了每个字段 就会立即验证它 我想做的是 不显眼地 触发表单元素的验证 也就是说 only如果用户已尝试提交
  • 如何更改传单中功能集的样式?

    我正在看等值区域的例子 https leafletjs com examples choropleth https leafletjs com examples choropleth 这是他们使用的数据源 type Feature prop
  • 取消html5浏览器中的单图请求

    我正在动态加载 大 图像以绘制到 html5 画布中 如下所示 var t new Image t onload t src http myurl 但每隔一段时间就会想取消图片请求完全地 我想出的唯一方法是设置src to i e t sr
  • 网站 YouTube 嵌入视频不断播放

    我正在使用 youtube 提供的 iframe 在我的网站上嵌入视频 我还使用了一个 css 弹出窗口 这是我从这个页面学到的http www pat burt com web development how to do a css po
  • VBA / HTML / jQuery 选择自动完成 - 在列表中选择

    我正在尝试使用 Excel 中的 VBA 在网站的列表中选择一个值 这不是一个 正常列表 该网站使用 jQuery 选择自动完成 如下所示 example http davidwalsh name demo jquery chosen ph
  • 如何使用 JavaScript 中的值填充下拉列表?

    我在 Tridion CMS 扩展中的功能区工具栏按钮中添加了一个按钮 单击该按钮后 将显示一个弹出页面 其中包含两个下拉菜单 通过更改第一个下拉控件中的值 我应该填充第二个下拉控件的值 就我而言 我正在使用ASP drop down li
  • 使用 moment.js 检查输入日期是否为星期一

    好吧 我想检查日期是否是星期一 例如 var myDate new Date moment myDate DD MM YYYY dayIs monday 在我的国家 一周的第一天是星期一 所以 我真的想检查输入日期是否是一周的开始 我尝试使
  • 如何仅在 NextJS 站点构建期间使用 getInitialProps?

    当使用 NextJS 构建静态站点时 我想要getInitialProps方法仅在构建步骤期间触发 而不是在客户端上触发 在构建步骤中 NextJS 运行getInitialProps 方法 https nextjs org docs fe
  • 即使我可以监视其他方法,也无法监视事件处理程序

    我想使用 Jest Jasmine Enzyme 测试 React 中的事件处理程序 MyComponent js import React from react class MyComponent extends React Compon
  • 检查 touchend 是否在拖动后出现

    我有一些代码可以更改表的类 在手机上 有时表格对于屏幕来说太宽 用户将拖动 滚动来查看内容 但是 当他们触摸并拖动表格时 每次拖动都会触发 touchend 如何测试触摸端是否是触摸拖动的结果 我尝试跟踪dragstart和dragend
  • 如何流式传输 OpenAI 的完成 API?

    我想流式传输结果通过 OpenAI 的 API 完成 https beta openai com docs api reference completions 该文档提到使用服务器发送的事件 https developer mozilla
  • 是否有任何非轮询方式来检测 DOM 元素的大小或位置何时发生变化?

    很长一段时间以来 我一直在寻找一种方法来检测 DOM 元素的大小或位置何时发生变化 这可能是因为窗口调整了大小 或者因为向该元素添加了新的子元素 或者因为在该元素周围添加了新元素 或者因为 CSS 规则已更改 或者因为用户更改了浏览器的字体
  • 在d3.js中将2D形状转换为3D,并根据ANGULAR中的值调整高度

    我正在使用 d3 js v6 创建以下 2D 图表表示的 3D 图表 这个圆圈中有多个正方形 每个正方形都根据值分配了一种颜色 值越大 正方形越暗 现在我想将其转换为 3D 形状 其中当值变高时 只有特定正方形的高度会增加 因此结果在某种程
  • 如何使JavaScript函数在Eclipse“大纲视图”中可见?

    我有这样的代码 但如果它在匿名函数中定义 则无法打开函数大纲 类没有问题 我该如何概述something2 请分享一些提示 我可以将所有函数标记为构造函数 但这是无效的方法 start of track event required deb
  • JS用正则表达式替换数字

    我有元素的标识符 如下所示 form book 1 2 3 我想要的是用其他值替换该标识符中的第二个数字 我将函数 match 与以下正则表达式一起使用 var regexp d d d 但它返回我包含的数组 1 2 3 2 因此 当我尝试
  • IE11不监听MSFullscreenChange事件

    我正在尝试使用 Bigscreen js 在 IE11 中使用全屏 但 IE11 不监听 MS FullscreenChange 事件 document addEventListener MSFullscreenChange functio
  • 淡出和循环一组 div 的最佳方式

    假设我有以下 div div class a You are funny div div class b You are smart div div class c You are cool div 最好的展示方式是什么div a持续 5
  • Chartjs刻度标签位置

    尝试让 Y 轴刻度标签看起来像image https i stack imgur com XgoxX png 位于秤顶部且不旋转 缩放选项当前如下所示 scales yAxes id temp scaleLabel display true
  • 数据表日期范围过滤器

    如何添加日期范围过滤器 like From To 我开始进行常规搜索和分页等工作 但我不知道如何制作日期范围过滤器 我正在使用数据表 1 10 11 版本 My code var oTable function callFilesTable
  • 使用异步调用时如何从 javascript 更新元刷新?

    我有一个系统 它使用元刷新来注销页面 该系统会在空闲用户后进行清理 不用担心 服务器也会导致会话超时 我开始通过 ajax 进行一些操作 不是真正的 xml 但这不是重点 我可以运行从异步请求返回的javascript 所以我想知道是否可以

随机推荐

  • Python 3:我们可以在调用实例的多个方法时避免重复实例名称吗?

    我现在 或者我已经读到 它在 Python 2 x 中是不可能的 并且在 Python 3 中也找不到它 但也许我不知道如何搜索它 用一个简单的 Python 示例更容易解释它 for i in range 11 one turtle pe
  • 代理后面的 PyQt + QtWebkit

    我正在编写一个 PyQt 功能强大的 Qt 库的 Python 绑定 应用程序 并且我的应用程序的一小部分需要 Web 浏览器 提示 OAuth 所以我开始使用 QtWebkit 顺便说一下 它非常棒 唯一的问题是我想允许代理后面的用户使用
  • C# 通过多级数组仅根据Key名称查找JSON值

    我有各种输入 JSON 格式的数据 它们都包含特定的键名terminalSize 这是我唯一知道的作品 JSON 树的总数或确切深度terminalSizeJSON 树内部将永远是未知的并且可能会发生变化 我正在寻找一个 C 解决方案来循环
  • 添加片段容器视图后 Android 膨胀布局崩溃

    目前我有一个扩展 AppCompatActivity 的自定义抽屉活动 如下所示 public class DrawerActivity extends AppCompatActivity implements NavigationView
  • Eclipse自动补全问题

    刚刚安装了 Eclipse Helios Win7 64 我遇到了一个奇怪的问题 我输入 syso Ctrl Space 预计会完成 System out println 但它不起作用 我在网上搜索了大约一个小时 我将 首选项 gt Jav
  • iPhone 故障保护多个文件下载

    我的应用程序正在从服务器下载图像包 它是来自 XML 的直接链接 20 50 个文件 的数组 如何确保整组图像已完全下载 如果使用 iPhone 按钮关闭应用程序 如何添加条件来取消整个下载 并删除所有已下载的文件 这些方法在 AppDel
  • RestTemplate getForObject 无法映射自定义类

    自定义类结构 DocumentListVO 与 JSON 响应一对一映射 但在使用时DocumentListVO dv1 restTemplate getForObject uri DocumentListVO class 它抛出以下堆栈跟
  • 在模拟器 GenyMotion 上加载 React Native 问题

    我正在使用本机反应 react native cli 2 0 1 react native 0 55 3 我正在通过react native run android 屏幕始终加载应用程序 调试器模式 注意 这是一个突然的问题 直到昨天为止都
  • 如何让 MD5 更安全?或者说真的有必要吗?

    我将用户名和密码存储在 MySQL 数据库中 并使用 MD5 对它们进行哈希处理 然而 我只使用标准的 PHP 函数 没有任何修改 现在 我读到 MD5 已损坏 你做得怎么样 您是否通过不同的哈希机制运行多次或添加某种形式的盐 我很惊讶人们
  • 如何在Bootstrap中保持三列之间的空间?

    我在 Stackoverflow 上做了很多关于如何有效解决这个问题的搜索 但我似乎仍然没有找到我正在寻找的东西 基本上 我有三列 我希望它们在页面上均匀分布并居中 然而 当我为所有三列设置 col md 4 时 最终结果是它们全部三列彼此
  • 使用Python删除目录中的所有文件

    我想删除所有具有扩展名的文件 bak在一个目录中 我怎样才能在Python中做到这一点 Via os listdir https docs python org 2 library os html os listdir and os rem
  • getObjectSummaries 能否获取存储在 S3 存储桶中的对象数量?

    我需要知道存储在下面的文件数量S3桶 现在 ObjectListing没有这样的方法count or numberOfObject 但是 它有一个方法将返回一个列表S3ObjectSummary public java util List
  • Intellij IDEA 不在构面列表中显示 Django

    我使用 Fedora 20 和 OpenJDK 1 7 0 60 设置 我可以成功设置并运行 Intellij IDEA 13 1 然后设置 Python 插件 好吧 当我尝试选择性地使用 Python 模块从 Intellij 生成项目时
  • 如何移动SVG在D3中的位置?

    我使用 D3 创建了一个 svg 然而 它只显示在屏幕的左上角 或者被附加到另一个 svg 中 我可以使用 JavaScript 移动它吗 例如 var svg d3 select body append svg attr width 20
  • 在 Linux 中正常构建的 C++ 程序在 VS2010 中编译失败

    我的 C 项目在 Linux 上构建并运行良好 现在我正在尝试在VS2010中编译它 我似乎从 cmath 库中收到许多错误 如下所示 Error 1 error C2061 syntax error identifier acosf c
  • Labview - 通过数组大小限制增加数组索引

    我正在使用labview XY线图 该图使用随机数生成器生成y值 并使用while循环计数生成x值 当达到阈值 x 值 例如 1000 时 我希望能够迭代过去的 1000 个值并仅每 10 个值显示一次 这具有整理绘图的效果 理想情况下 实
  • 如何在 Rust 中计算 21 的阶乘?

    我需要在我的项目中计算 21 的阶乘 fn factorial num u64 gt u64 match num 0 gt 1 1 gt 1 gt factorial num 1 num fn main let x factorial 21
  • 数组中实际上是空白列?

    我在 Google 表格中使用这个公式 SORT SORT Discord D B2 B Discord D A2 A ARRAYFORMULA IF Discord D G2 G IF Discord D C2 C lt gt Remov
  • 系统.ServiceModel.Web .NET Core

    我正在将 NET Framework 应用程序移植到 NET Core 中 我已通过 NuGet System ServiceModel Web 添加 但似乎不起作用 我需要 WebGet 的替代方案 ServiceContract pub
  • 如何拒绝来自 then 函数内部的承诺

    这可能是一个愚蠢的问题 但是在承诺链中 如何拒绝来自 then 函数之一的承诺 例如 someActionThatReturnsAPromise then function resource return modifyResource re