【小白成长记】new Error()传递对象数据

new Error()需要传递对象数据时遇到的小问题,简单记录如下。

如下图代码:单个Promise里,表单校验未通过处理为 reject,同时需要将 表单以及未校验通过的错误信息传递以便后续进行处理。经过测试,发现reject只能传递一个参数,所以将 formItem 与 fields 包裹到一个对象中进行传递:

在这里插入图片描述

但这样写代码时,提交时校验拦截住了:提示Proimse中的reject期望传递一个Error

在这里插入图片描述
怎么办?
首先尝试将传递的对象放到 new Error() 里,但后面取不出来了,成了[Object object];然后尝试用 JSON.stringify 和 JSON.parse 转换,发现 JSON.parse 时会报错,显然这种方法也不行。

这时候就需要求助了:

在这里插入图片描述

代码如下:

function createErrorWithObject(errorObj) {// 将对象转换为字符串const errorObjString = JSON.stringify(errorObj);// 创建Error对象,并将对象字符串作为错误信息const error = new Error(errorObjString);// 扩展Error对象,添加一个名为data的属性,其值为原始对象error.data = errorObj;return error;
}// 使用示例
const myObject = { message: "这是一个对象", code: 42 };
const error = createErrorWithObject(myObject);console.log(error.message); // 输出对象的字符串表示
console.log(error.data);    // 输出原始对象

测试以上代码准确有效。

按照这个思路,最开始项目中的代码修改成了如下:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/282219.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑文件msvcp100.dll丢失原因,如何快速修复msvcp100.dll

电脑文件msvcp100.dll丢失原因,最近有朋友在问这个,显然会问这个的人,一般都是遇到了msvcp100.dll丢失的问题了,今天我们就来详细的给大家说说msvcp100.dll这个文件吧,我们只有了解了msvcp100.dll这个文件,…

Docker专题-03 Log-Driver日志转存

Docker专题教程 注: 本教程由羞涩梦整理同步发布,本人技术分享站点:blog.hukanfa.com 转发本文请备注原文链接,本文内容整理日期:2024-03-19 csdn 博客名称:五维空间-影子,欢迎关注 说明 容器…

MySQL 索引:索引为什么使用 B+树?

Hash 索引不支持顺序和范围查询; 二叉查找树(BST):解决了排序的问题,极端情况下可能会退化成线性链表,查询效率急剧下降; 平衡二叉树(AVL) :通过旋转解决了平衡的问题,但是旋转操作效率太低&am…

Rust之构建命令行程序(五):环境变量

开发环境 Windows 11Rust 1.77.0 VS Code 1.87.2 项目工程 这次创建了新的工程minigrep. 使用环境变量 我们将通过添加一个额外的功能来改进minigrep:一个不区分大小写的搜索选项,用户可以通过环境变量打开该选项。我们可以将此功能设置为命令行选项,…

linux 升级openssl1.1.1w 亲测记录

下载好openssl源码包,解压到指定目录下 tar -xzvf openssl-1.1.1w.tar.gz -C /usr/localcd openssl-1.1.1w/*预编译、编译、安装*/./config --prefix/usr/local/openssl sharedmake && make install备份配置系统中原有的文件、创建软链接、动态库查找路径配置文件 ld.s…

SpringBoot实战(二十七)集成WebFlux

目录 一、WebFlux1.1 定义1.2 WebFlux 与 Spring MVC 区别 二、代码实现2.1 Maven 配置2.2 暴露 RESTful API 接口的方式方式一:基于注解的控制器方式二:函数式路由器(Functional Endpoints) 2.3 测试Service2.4 测试ServiceImpl2…

【Charles如何对手机APP进行抓包和弱网测试】

一、Charles对APP抓包 1、前提条件: 1)电脑上必须安装Charles工具,如没有安装可参考:【Charles抓包工具下载安装详细操作步骤】-CSDN博客 2)手机和电脑必须在同一个局域网内(连接同一个WiFi)…

ng发布静态资源 发布项目 发布数据

描述:把一个项目或者数据发布出来,通过http的形式访问,比如发布一个js文件,用http://localhost:6060/data/jquery/jquery.min.js访问。 步骤:配置nginx.conf文件,nginx.conf位于conf目录下,在se…

P2822 [NOIP2016 提高组] 组合数问题题解

题目 组合数表示的是从n个物品中选出m个物品的方案数。举个例子,从(1,2,3) 三个物品中选择两个物品可以有 (1,2),(1,3),(2,3)这三种选择方法。根据组合数的定义,我们可以给出计算组合数的一般公式: 其中n!12⋯n;特别地&#xff0…

Java 在PDF中插入页眉、页脚

在处理PDF文档时,有时需要为文档中的每一页添加页眉和页脚,以包含一些有用的信息,如文档标题、章节名称、日期、页码等。对于需要自动化处理的场景,或者需要在大量文档中添加一致的页眉和页脚,可以通过编程的方式来实现…

QGraphicsView的使用,view坐标,scene坐标,item坐标

Graphics View绘图构架 QGraphicsScene(场景):可以管理多个图形项QGraphicsItem(图形项):也就是图元,支持鼠标事件响应。QGraphicsView(视图):关联场景可以让…

【数据库系统】数据库完整性和安全性

第六章 数据库完整性和安全性 基本内容 安全性;完整性;数据库恢复技术;SQL Server的数据恢复机制; 完整性 实体完整性、参照完整性、用户自定义完整性 安全性 身份验证权限控制事务日志,审计数据加密 数据库恢复 冗余…

Redis学习二--常见问题及处理

基本概念 Redis基本概念数据结构 机制 持久化机制: RDB(内存快照):某一时刻的内存快照以二进制的方式写入磁盘,可以手动触发和自动触发。 优点:生成文件小,恢复速度快,适用于灾难恢复。 缺点&#xff1a…

关于Zookeeper分布式锁

背景 之前说到分布式锁的实现有三种 1、基于数据库实现的分布式锁 2、Redis分布式锁 3、Zookeeper分布式锁 前者redis分布式锁博客已具体介绍,此博客最终决定补齐关于Zookeeper分布式锁的实现原理。 简述 Zoopkeeper,它是一个为分布式的协调服务&…

固态继电器(SSR)您需要了解的一切

固态继电器(也称SSR,SS继电器或SSR开关)是一种集成的非接触式电子开关设备,由集成电路(IC)和分立组件紧密组装而成。处于现代电气应用的最前沿,与机电同类产品相比,具有许多优势。本…

重学SpringBoot3-Profiles介绍

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-Profiles介绍 Profiles简介如何在Spring Boot中使用Profiles定义Profiles激活ProfilesIDEA设置active profile使用Profile-specific配置文件 条件化Bean…

flex布局

文章目录 1. 概念2. 和浮动的区别3. 伸缩容器和伸缩项目3.1. 伸缩容器3.2. 伸缩项目 4. 主轴与侧轴5. 主轴属性6. 纵轴属性6.1. align-self 示例 7. flex 实现水平垂直居中7.1. 方法一7.2. 方法二 8. 伸缩性8.1. flex-basis8.2. flex-shrink8.3. flex-grow(伸&#…

如何做人才运营战略?

招聘人才和人才获取是同义词,但它们并不相同。招聘是大多数雇主的短期解决方案,而人才获取是一个长期解决方案。 企业要想改善企业文化朝着统一的愿景努力,就需要关注长期规划。 人才获取vs人才招聘 招聘是为了填补空缺,人才获取…

在服务器(Ubuntu20.04)安装用户级别的cuda11.8

1、cuda11.8的下载 首先在cuda官网下载我们需要的cuda版本,这里我下载的是cuda11.8(我的最高支持cuda12.0) 这里我直接使用wget命令下载不了,于是我直接在浏览器输入后面的链接下载到本地,之后再上传至服务器的&am…

SpringBoot2.7集成Swagger3

Swagger2已经在17年停止维护了,取而代之的是 Swagger3(基于openApi3),所以新项目要尽量使用Swagger3. Open API OpenApi是业界真正的 api 文档标准,其是由 Swagger 来维护的,并被linux列为api标准&#x…