new Promise(function(resolve, reject){}) 的reject相当于抛异常

news2024/11/29 0:34:10

通过reject传异常:

<html>
    <body>
        <script>
            const promise = new Promise(function(resolve, reject) {

              if (Math.random() > 0.5){
                resolve("value");
              } else {
                reject(new Error("throw error"));
                //throw new Error("throw error")
              }
            });
            function a(v) {
                console.log("a函数");
                console.log(v);
            }
            function b(er) {
                console.log("b函数");
                console.log("reject打印Error对象",er);
            }
            promise.then(a,b)
        </script>
    </body>
</html>

控制台输出:

b函数
index.html:19 reject打印Error对象 Error: throw error
    at index.html:9:24
    at new Promise (<anonymous>)
    at index.html:4:29

 

通过throw抛异常:

<html>
    <body>
        <script>
            const promise = new Promise(function(resolve, reject) {

              if (Math.random() > 0.5){
                resolve("value");
              } else {
                //reject(new Error("throw error"));
                throw new Error("throw error")
              }
            });
            function a(v) {
                console.log("a函数");
                console.log(v);
            }
            function b(er) {
                console.log("b函数");
                console.log("打印Error对象",er);
            }
            promise.then(a,b)
        </script>
    </body>
</html>

控制台输出:

b函数
index.html:19 打印Error对象 Error: throw error
    at index.html:10:23
    at new Promise (<anonymous>)
    at index.html:4:29 

 所以有这样的等价关系:

p.then((val) => console.log('fulfilled:', val))
  .catch((err) => console.log('rejected', err));

// 等同于
p.then((val) => console.log('fulfilled:', val))
  .then(null, (err) => console.log("rejected:", err));

第一个then()方法指定的回调函数,如果运行中抛出错误,也会被catch()方法 或第二个then()方法指定的第二个回调函数 捕获。

ES6 入门教程

复习知识点:

const promise = new Promise(function(resolve, reject){})中的resolve和reject是函数指针形参,定义Promise时,还不知道resolve和reject具体是什么函数。只有执行到promise.then(a,b),才会把a函数和b函数的指针赋给new Promise中定义的resolve和reject。

resolve("value")会将字符串"value"作为参数传给a()函数,可以理解为好像是将resolve("value")替换成a("value"),resolve()像是个占位符,将来会被then()的第一个参数传入的函数(本例为a() )替换。

async await

ES6 入门教程

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分层架构理论基础

一、三层架构 1、什么是三层架构 三层架构&#xff08;3-tier architecture&#xff09;通常意义上的三层架构就是将整个业务应用划分为&#xff1a;表示层&#xff08;User Interface layer&#xff09;、业务逻辑层&#xff08;Business Logic Layer&#xff09;、数据访问层…

容器运行时与k8s概述

容器运行时与k8s概述 首先我们要明确一个知识点就是容器本质上就是一个进程&#xff0c;一个特殊的进程&#xff0c;是通过 Namespace 实现资源&#xff08;网络、文件系统等&#xff09;隔离&#xff0c;通过 Cgroups 实现资源&#xff08;CPU、内存&#xff09;限制&#xff…

Kernel怎么跳转到Android:linux与安卓的交界

上一篇写了Uboot怎么到Linux kernel&#xff0c;这一章来看看linux kernel怎么到Android的。 虽然是零零碎碎的学习了一些关于Linux的知识&#xff0c;但是对于这个部分基本上没有站在系统的角度去看过。 1、前言 kernel的启动主要分为两个阶段。 1、阶段一 从入口跳转到s…

Python | 24K纯新手的Python环境搭建之路!~(Anaconda + Jupyter)

1写在前面 最近在搞Machine Learning&#xff0c;R中的包实在是不太给力&#xff0c;这方面还是要看Python的。&#x1f602; 这里和大家分享一下我的Python环境搭建之路&#xff0c;图文介绍非常详细&#xff0c;希望帮助到大家。&#x1f618; 由于我的电脑是M1 芯片的Macboo…

【Java】springboot 枚举参数

1/&#x1f4a4;背景 很多大厂都要求了代码里面避免魔法值&#xff0c;如阿里巴巴开发规范 阿里巴巴Java开发手册1.4.0 &#xff0c;那么使用枚举就是比较好避免的一个办法&#xff0c;比如 性别 0-未知 1-男 2-女 【强制】不允许任何魔法值&#xff08;即未经预先定义的常量&…

显卡、显卡驱动版本、cuda版本和Pytorch相互之间的依赖关系

问题 话不多说&#xff0c;本文主要就是探讨如何根据显卡和显卡驱动版本去选择相应的CUDA和Pytorch。 显卡 显卡驱动版本 打开cmd命令提示符&#xff0c;输入nvidia-smi然后按回车键&#xff1a; 需要关注两个地方&#xff1a; 显卡驱动版本&#xff1a;516.59显卡支持最高…

Zebec节点Zepoch销量接近800个,生态发展信心十足

Zebec Protocol目前已经获得了两轮历史融资额近4000万美元的融资&#xff0c;其投资者包括Coinbase、Distributed Global、OKX Blockdream Ventures 、Circle Venture等20多家全球一线投资机构&#xff0c;而在获得融资后Zebec Protocol也开始全力打造多链生态&#xff0c;以进…

第十章:聊聊ThreadLocal

是什么&#xff1f;能干嘛&#xff1f;常用API案例一以上代码存在的问题&#xff1f;演示线程池复用本地变量的情况ThreadLocal源码Thread&#xff0c;ThreadLocal&#xff0c;ThreadLocalMap 三者的关系&#xff1f;ThreadLocal 的 get 方法set、remove 方法总结ThreadLocal 之…

Java自动化测试调试中遇到的问题

前言:记录下遇到的问题 Java自动化测试在调试中遇到的问题总结 1、遇到的Waring:must be unique [WARNING] dependencies.dependency.(groupId:artifactId:type:classifier) must be unique: com.vertica.jdbc:vertica-jdbc:jar -> duplicate declaration of version 10.…

python的安装及常用语法(一)

python的安装及简单使用python解释器的安装1. windows系统安装方法2. 测试安装是否成功PyCharm代码编辑器的安装python的基础语法1. “input”用法&#xff1a;用户输入信息2. “bin”用法&#xff1a;将十进制转换为二进制3. “print”用法&#xff1a;输出信息4. 练习1. 张三…

modbus协议讲解,上位机与PLC交互

开发过程中modbus-RTU需要电脑USB口对外交互&#xff0c;参考我的文章&#xff1a;C# 通过Com端口和单片机通讯&#xff08;232/485/USB&#xff09;_花开莫与流年错_的博客-CSDN博客_c#与单片机通信 上位机和PLC交互的消息在Excel中配置&#xff0c;配置后通过Modbus协议加载…

数据结构之-队列实现

队列是一个先进先出的结构&#xff0c;可以用链表呀&#xff0c;数组来实现它&#xff0c;我们今天用数组实现个队列&#xff0c;以优先级队列方式&#xff0c;我们看看怎么实现&#xff0c;优先级队列以队列存储时规则会将即将过期的或较小的数据存储在前面&#xff0c;这样取…

【生成式网络】入门篇(四):CycleGAN 的 代码和结果记录

CycleGAN是一个里程碑式的工作&#xff0c;开启了unpaired的风格迁移的先河&#xff0c;斑马转马的效果还是很震惊。 具体原理可以参考 https://zhuanlan.zhihu.com/p/402819206 老习惯&#xff0c;直接上code&#xff0c;然后按照code进行一些解释 代码参考自 https://github.…

自托管书签管理器LinkAce

本文完成于 9 月下旬&#xff0c;当时的版本是 v1.10.4&#xff0c;发稿时最新版本为 v1.10.5 什么是 LinkAce &#xff1f; LinkAce 是一个自托管档案&#xff0c;用于收集您喜爱的网站的链接&#xff0c;并保存文章以供日后阅读。LinkAce 提供了一个长期存档来存储指向网站、…

NVIDIA 7th SkyHackathon(二)开发套件的安装与测试

1.NeMo 开源工具包 1.1 关于 NeMo NeMo&#xff08;Neural Modules&#xff09;是 NVIDIA 发布的基于 PyTorch 的开源工具包&#xff0c;它允许开发者快速构建、训练和微调会话式人工智能模型 NeMo 由 NeMo Core 和 NeMo Collection 组成&#xff0c;NeMo Core 为所有模型和…

[附源码]Python计算机毕业设计Django的中点游戏分享网站

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

内容理解之情感计算

导语 概念定义&#xff1a;情感计算是自然语言处理领域的重要研究方向之一&#xff0c;其目标是赋予计算机类似于人一样的观察、理解和生成各种情感表达的能力&#xff0c;它是一个高度综合化的跨学科领域&#xff0c;涉及计算机科学、心理学、社会学和认知科学等。通过多学科…

物联网卡有哪些类型

伴随着科学技术的不断升级&#xff0c;不断发展&#xff0c;5G和物联网必定成为未来生活的主角&#xff0c;而现在5G已经慢慢在我们生活越来越常见&#xff0c;这是我们肉眼可以看见的&#xff0c;其实物联网如同5G一样&#xff0c;在我们生活中也随处可见&#xff0c;如我们平…

谈谈Go语言中函数的本质

在很多编程语言中&#xff0c;都会有函数一说&#xff0c;今天我们来聊聊Go语言中的函数。 废话不多说&#xff0c;咱们直接上代码~ 代码 package mainimport "fmt"func main() {fmt.Printf("%T\n", function1)fmt.Printf("%T\n", function2)…

跨越速运如何构建实时统一的运单分析

作者&#xff1a;张杰&#xff0c;跨越速运大数据架构师&#xff08;本文为作者在 StarRocks Summit Asia 2022 上的分享&#xff09; 作为大型现代化综合速运企业&#xff0c;跨越速运拥有 3000 多家服务网点 &#xff0c;日均处理 30 多万票运单。海量运单数据涌来&#xff…