【前端面试】-- 必知必会的promise题

news/2024/5/1 12:23:11/文章来源:https://blog.csdn.net/pakerder/article/details/126968327

Promise 想必大家都十分熟悉,想想就那么几个 api,可是你真的了解 Promise 吗?

请迎接测试:

以下 promise 均指代 Promise 实例,环境是 Node.js

题目一:

const promise = new Promise((resolve, reject) => {console.log(1)resolve()console.log(2)})promise.then(() => {console.log(3)})console.log(4)

运行结果:

 解释:Promise构造函数都是同步执行的,promise then中的函数是异步执行的。

题目二:

 运行结果:

 

解释:promise 有 3 种状态:pending、fulfilled 或 rejected

then异步,setTimeout异步;刚开始都是pending;状态改变只能是 pending->fulfilled 或者 pending->rejected,状态一旦改变则不能再变;上面 promise2 并不是 promise1,而是返回的一个新的 Promise 实例

题目三:

 运行结果:

解释: 

构造函数中的 resolve 或 reject 只有第一次执行有效,多次调用没有任何作用,呼应代码二结论:promise 状态一旦改变则不能再变

题目四:

运行结果:

 

 解释:

promise 可以链式调用,提起链式调用我们通常会想到通过 return this 实现,不过 Promise 并不是这样实现的;

promise 每次调用 .then 或者 .catch 都会返回一个新的 promise,从而实现了链式调用

题目五:

运行结果:

解释:

promise 的 .then 或者 .catch 可以被调用多次,但这里 Promise 构造函数只执行一次。或者说 promise 内部状态一经改变,并且有了一个值,那么后续每次调用 .then 或者 .catch 都会直接拿到该值

题目六:

运行结果:

解释:

.then 或者 .catch 中 return 一个 error 对象并不会抛出错误,所以不会被后续的 .catch 捕获,要被捕获需要改成其中一种:

因为返回任意一个非 promise 的值都会被包裹成 promise 对象,即 return new Error('error!!!') 等价于 return Promise.resolve(new Error('error!!!'))

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

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

相关文章

ES8JC-ASEMI快恢复二极管ES8JC

编辑:ll ES8JC-ASEMI快恢复二极管ES8JC 型号:ES8JC 品牌:ASEMI 封装:SMC 特性:快恢复二极管 正向电流:8A 反向耐压:600V 恢复时间:35ns 引脚数量:2 芯片个数:1 芯片尺寸:84MIL 浪涌电流:125A 漏电流:<5ua 工作温度:-40℃~150℃ 包装方式:30/管;3000/箱 备受…

华为云各Region网络延迟实测

一、测试综述 测试内容&#xff1a; 序号 评测内容 测试日期 1 华为云各大区公网接入网络延迟 2022-09-20 2 华为云各大区之间网络延迟&#xff08;通过公网&#xff09; 2022-09-20 3 华为云各大区之间网络延迟&#xff08;通过云连接&#xff09; 2022-09-20 测…

【Linux】聊聊删文件的那些破事

聊聊删文件的那些破事前言正文rm命令find命令perl方式10w文件删除对比50w文件删除对比100w文件删除对比结语前言 在操作系统的日常运维中&#xff0c;我们经常会做文件的创建、删除、修改操作&#xff0c;尤其是删除&#xff0c;无论是定期清理日志文件&#xff0c;还是做完一…

传统光流方法汇总

又搬运了一个3d视觉相关的~~ 还是先道歉 就是学习用 还是公交上回家看那种 ~~ 这次分享传统光流方法汇总及其在深度学习中的应用&#xff01;&#xff08;基于相位/能量/匹配/变分&#xff09; 回望传统光流估计方法 近年来&#xff0c;随着深度学习技术的快速发展&#xff…

嵌入式分享合集63

一、PCB为什么一定要做阻抗 在具有电阻、电感和电容的电路里&#xff0c;对交流电所起的阻碍作用叫做阻抗。阻抗常用Z表示&#xff0c;是一个复数&#xff0c;实部称为电阻&#xff0c;虚部称为电抗。 其中电容在电路中对交流电所起的阻碍作用称为容抗&#xff0c;电感在电路…

Pr:多机位编辑

很多时候一个机位满足不了影视创作的需求。比如拍摄人物动作&#xff0c;如果能使远景、近景、特写等一些镜头相互衔接&#xff0c;将会使得角色显得更加丰富饱满。不同的景别传达着不同的信息&#xff0c;更容易交待环境和表达角色的情绪。早期人们在拍摄的同时完成多机位切换…

应用层 HTTP 代理服务器转发消息时的相关头部 请求头 X-Forwarded-For

在http消息传递过程当中会经过很多正向代理服务器和反向代理服务器&#xff0c;这些代理服务器在转发消息的时候会涉及到http的头部&#xff0c;下面将会介绍这些头部&#xff0c;包括由于存在这些代理服务器所以客户端和源服务器之前有许多的tcp连接&#xff0c;有一些http头部…

Flutter快学快用15 服务通信:Flutter 中常见的网络协议

上一课时之前&#xff0c;我们的接口都是在代码中模拟假数据&#xff0c;并没有从服务端获取数据&#xff0c;但是在实际开发中&#xff0c;必须与服务端进行交互。本课时主要介绍在 Flutter 中常见的网络传输协议序列化方式&#xff0c;并对其中比较常用的协议进行简单实践&am…

大数据培训技术phoenix表操作

phoenix表操作 1 显示所有表 &#xff01;table 或 &#xff01;tables 2 创建表 CREATE TABLE IF NOT EXISTS us_population ( State CHAR(2) NOT NULL, City VARCHAR NOT NULL, Population BIGINT CONSTRAINT my_pk PRIMARY KEY (state, city)); 如下显示&#xff1a; 在p…

超级基础篇_疑惑实验

1、多态&#xff1a; 多态是什么&#xff1f; 多态是同一个行为具有多个不同表现形式或形态的能力。 多态就是同一个接口&#xff0c;使用不同的实例而执行不同操作多态的优点 1.消除类型之间的耦合关系 2. 可替换性 3. 可扩充性 …

树的应用 —— 二叉树:二叉树的性质

树的应用 —— 二叉树 二叉树&#xff08;Binary Tree&#xff09;是n &#xff08;n ≥0&#xff09;个节点构成的集合&#xff0c;或为空树&#xff08;n 0&#xff09;&#xff0c;或为非空树。 对于非空树T &#xff0c;要满足&#xff1a; ①有且仅有一个被称为根的节点…

FFmpeg入门详解之20:视频编码原理简介

视频为何需要压缩&#xff1f; 原因&#xff1a;未经压缩的数字视频的数据量巨大 ● 存储困难 ○ 一G只能存储几秒钟的未压缩数字视频。 ● 传输困难 ○ 1兆的带宽传输一秒的数字电视视频需要大约4分钟。 主要压缩了什么东西&#xff1f; 原始视频压缩的目的是去除冗余信息&a…

结构体的理解

结构体前言结构体&#xff1f;定义变量如何赋初值&#xff1f;结构体的访问结构体的嵌套使用注意事项结构体的大小内存对齐默认对齐数的修改为什么存在内存对齐&#xff1f;结构体传参位段什么是位段&#xff1f;位段的内存分配深入剖析位段“存”数据位段的“取”位段的跨平台…

Idea工具中,使用Mapper对象有红线

背景&#xff1a; IDEA开发工具&#xff0c;springboot mybatis项目 &#xff08;这个是不需要改的&#xff0c;也不算是问题&#xff0c;因为项目并不会报错&#xff0c;只是作者好奇找了下问题&#xff0c;并记录一下&#xff09; 问题描述 mapper对象在service层有红线&a…

8 位卷王!总结 1135 页 Java 核心面试手册,硬钢 BATJ 一线大厂面试官

又到了金九银十求职季&#xff01; HR 开始拼业绩&#xff0c;招聘网站也开始释放出大量岗位&#xff0c;转行跳槽、毕业求职的人都开始行动起来&#xff01; 此时&#xff0c;对于大多数程序员来说&#xff0c;最大的目标就是&#xff1a;进大厂&#xff01; 大厂为什么这么…

ArcGIS Map Sdk for unity使用

本文主要讨论离线模式。 目录 1.底图tpk文件制作 2.3D图层slpk文件制作 3.导入使用 1.底图tpk文件制作 软件&#xff1a;91卫图助手 Arcgis Pro 操作步骤&#xff1a; 打开91卫图助手&#xff0c;更换底图为高德影像/腾讯影像。(百度影像的地理投影格式有自身加密&#xff…

剖析容器运行时

特别说明&#xff1a;一部分转载自大佬文章&#xff1a;https://blog.csdn.net/weixin_39246554/article/details/120926174&#xff08;不得不说大佬总结的真好啊&#xff01;&#xff01;&#xff01;&#xff09; 剩下的听老王公开课总结。 k8s官网关于运行时的说明&#x…

Typora Mac版本安装Pandoc导出文件为word格式(windows可通用)

我们在用Typora时导出的格式常常为PDF格式&#xff0c;但是如果我们要将文件导出为word格式的时候却需要安装插件PanDoc&#xff0c;我目前使用的是Mac版本的Typora&#xff0c;给大家分享一下如何安装Pandoc以及导出word格式文件。 1.根据Typora中的说明进入GitHub下载Pandoc…

Maven安装配置

Maven安装配置一、下载 apache-maven-3.6.1Maven官网:https://maven.apache.org/download.cgi(或)直接下载maven-3.8.6:https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.zip解压到当前文件夹二、配置 maven 环境变量右键此电脑 - 属性 - 高级…

MySQL学习——执行计划

MySQL中可以通过explain关键字模拟优化器执行SQL语句,从而知道MySQL是如何处理SQL语句的,这将有利我们做代码的优化。 1、MySQL查询执行过程客户端向MySQL服务器发送一条查询请求 服务器首先检查查询缓存,若缓存中存在,则立刻返回存储在缓存中的结果。否则进入下一阶段 服务…