当前位置: 首页 > news >正文

Promise.reject()

Promise.reject() 静态方法返回一个已拒绝(rejected)的 Promise 对象,拒绝原因为给定的参数。

语法

Promise.reject(reason)

参数

reason
该 Promise 对象被拒绝的原因。

返回值

返回一个已拒绝(rejected)的 Promise,拒绝原因为给定的参数。

描述

Promise.reject 静态方法返回一个被拒绝的 Promise 对象。通过使用 Error 的实例获取错误原因 reason 对调试和选择性错误捕捉很有帮助。

Promise.reject() 方法是一个通用方法,支持子类化,这意味着它可以在 Promise 的子类上调用,并且结果会是该子类类型的 Promise 对象。为此,子类的构造函数必须实现与 Promise() 构造函数相同的签名,即接受一个 executor 函数,该函数可以用 resolvereject 回调函数作为参数进行调用。Promise.reject() 实际上相当于 new Promise((resolve, reject) => reject(reason)) 的简写形式。

Promise.resolve() 不同,即使 reason 已经是一个 Promise 对象,Promise.reject() 方法也始终会将其封装在一个新的 Promise 对象中。

示例

使用 Promise.reject() 静态方法

Promise.reject(new Error("失败")).then(() => {// 不会被调用},(error) => {console.error(error); // Stacktrace},
);

reject 一个 promise 对象

Promise.resolve 不同,Promise.reject 方法不会重用已存在的 Promise 实例。它始终返回一个新的 Promise 实例,该实例封装了拒绝的原因(reason)。

const p = Promise.resolve(1);
const rejected = Promise.reject(p);
console.log(rejected === p); // false
rejected.catch((v) => {console.log(v === p); // true
});

在非 Promise 构造函数上调用 reject()

Promise.reject() 方法是一个通用方法。它可以在任何实现与 Promise() 构造函数相同签名的构造函数上调用。例如,我们可以在一个构造函数上调用它,并传入 console.log 作为 reject 参数:

class NotPromise {constructor(executor) {// “resolve”和“reject”函数的行为与原生 Promise 完全不同,但 `Promise.reject()` 方法以相同的方式调用它们。executor((value) => console.log("已解决", value),(reason) => console.log("已拒绝", reason),);}
}Promise.reject.call(NotPromise, "foo"); // 输出 "已拒绝 foo"
http://www.lryc.cn/news/458432.html

相关文章:

  • 大数据-163 Apache Kylin 全量增量Cube的构建 手动触发合并 JDBC 操作 Scala
  • 云手机与传统手机的区别是什么?
  • 微知-Bluefield DPU命名规则各字段作用?BF2 BF3全系列命名大全
  • Ubuntu 上使用 Nginx 实现反向代理并启用 HTTPS(详细教程)
  • 2. 继承Mono的单例模式基类
  • 数据治理:制造企业转型的关键要素与战略需求
  • FastAPI 基本路由
  • Python库matplotlib之六
  • 十一、数据库的设计规范
  • 这届物理与化学诺奖对S2AIAI4S的启示
  • 压力测试指南-云环境中的压力测试实践
  • 基于多密钥同态加密的安全高效的联邦学习
  • R语言统计分析——气泡图
  • 实用篇—Navicat复制多条INSERT语句,去除ID列执行
  • pytorch中张量的有关操作
  • Windows多线程编程 互斥量和临界区使用
  • Java中集合类型的转换
  • 汽车售后TPMS浅谈
  • LUCEDA IPKISS Tutorial 77:在版图一定范围内填充dummy
  • TON生态小游戏开发:推广、经济模型与UI设计的建设指南
  • Python 量子机器学习:基础概念、关键算法与应用实践
  • 信息安全数学基础(29) x^2 + y^2 = p
  • ChatGPT国内中文版镜像网站整理合集(2024/10/06)
  • 图文深入理解Oracle DB Scheduler
  • gin如何具体利用Server-Send-Events(SSE)实时推送技术实现消息推送
  • 写端口-tcp udp不同方式发包和接包
  • 计算机的错误计算(一百二十)
  • Spring Boot 中使用 JSON Schema 来校验复杂 JSON 数据
  • QT实现Opencv图像处理
  • 刚转Mac的新手如何卸载不需要的应用程序