当前位置:首页 > 科技  > 软件

promise(A).catch(f1).then(f2),f1执行后f2会执行吗,为什么?

来源: 责编: 时间:2024-04-08 09:00:15 245观看
导读前言习惯性刷刷面经,习惯性记录,现在找工作真的卷。有换工作的还是要提前准备,建议骑驴找马,别裸辞。最近也是刚入职一家新公司,感觉入坑了,一言难尽。分享几个小问题:promise(A).catch(f1).then(f2),f1执行后f2会执行吗?在这

前言

习惯性刷刷面经,习惯性记录,现在找工作真的卷。有换工作的还是要提前准备,建议骑驴找马,别裸辞。最近也是刚入职一家新公司,感觉入坑了,一言难尽。IpJ28资讯网——每日最新资讯28at.com

分享几个小问题:IpJ28资讯网——每日最新资讯28at.com

promise(A).catch(f1).then(f2),f1执行后f2会执行吗?

在这种情况下,如果 f1 被调用并且返回一个 rejected 状态的 Promise,那么 f2 将会执行。这是因为 .catch() 方法返回的是一个新的 Promise,它会等待原始 Promise(即 A)解决或拒绝,然后根据 A 的状态来决定它自己的状态。IpJ28资讯网——每日最新资讯28at.com

更详细地解释一下:IpJ28资讯网——每日最新资讯28at.com

  1. 如果 Promise A 被拒绝,并且 f1 被调用处理了这个拒绝状态,那么 f1 的返回值将成为新的 Promise 的解决值(resolved value),这个新的 Promise 将会变成 resolved 状态。
  2. 无论 f1 的处理结果如何,接下来紧跟在 .catch(f1) 后的 .then(f2) 都将会执行,因为它会等待前一个 Promise(即 A 或 f1 返回的 Promise)的状态。如果前一个 Promise 是 resolved 状态,那么 f2 就会被调用;如果是 rejected 状态,同样 f2 也会被调用。

因此,即使 f1 处理了原始 Promise A 的拒绝状态,接下来的 .then(f2) 仍然会执行。这是因为 .catch() 返回的新 Promise 是 resolved 状态,而不管它是由于原始 Promise A 的状态,还是由于 f1 的处理。IpJ28资讯网——每日最新资讯28at.com

promise执行顺序当涉及到 Promise 的执行顺序和原理时,我们需要理解 Promise 的异步特性以及其内部机制。下面是 Promise 的执行顺序和原理的一些关键点:IpJ28资讯网——每日最新资讯28at.com

  1. Promise 的状态:

Promise 对象有三种状态:pending(进行中)、fulfilled(已完成)和rejected(已拒绝)。IpJ28资讯网——每日最新资讯28at.com

初始状态是 pending,然后可能转变为 fulfilled 或 rejected。IpJ28资讯网——每日最新资讯28at.com

  1. 执行顺序:

当一个 Promise 被创建并执行时,它处于 pending 状态。IpJ28资讯网——每日最新资讯28at.com

Promise 的执行顺序与 JavaScript 事件循环(Event Loop)密切相关。IpJ28资讯网——每日最新资讯28at.com

当 Promise 的状态发生改变时(即由 pending 变为 fulfilled 或 rejected),将调用相关的处理函数(.then() 或 .catch())来处理结果。IpJ28资讯网——每日最新资讯28at.com

  1. IpJ28资讯网——每日最新资讯28at.com

    原理:IpJ28资讯网——每日最新资讯28at.com

    IpJ28资讯网——每日最新资讯28at.com

Promise 的构造函数接受一个函数作为参数(通常称为执行器函数),该函数在 Promise 被创建时立即执行。IpJ28资讯网——每日最新资讯28at.com

执行器函数接受两个参数:resolve 和 reject,分别用于将 Promise 的状态从 pending 转变为 fulfilled 或 rejected。IpJ28资讯网——每日最新资讯28at.com

在执行器函数中,通过调用 resolve(value) 将 Promise 的状态改变为 fulfilled,并传递一个解析值(resolved value);通过调用 reject(reason) 将 Promise 的状态改变为 rejected,并传递一个拒绝原因(rejection reason)。IpJ28资讯网——每日最新资讯28at.com

.then() 方法用于注册 Promise 成功状态的回调函数,.catch() 方法用于注册 Promise 失败状态的回调函数。IpJ28资讯网——每日最新资讯28at.com

.then() 和 .catch() 方法返回一个新的 Promise,因此可以进行链式调用。IpJ28资讯网——每日最新资讯28at.com

  1. IpJ28资讯网——每日最新资讯28at.com

    异步特性:IpJ28资讯网——每日最新资讯28at.com

    IpJ28资讯网——每日最新资讯28at.com

Promise 是一种用于处理异步操作的对象。它可以通过 resolve 和 reject 函数来处理异步操作的结果,并通过 .then() 和 .catch() 方法来处理异步操作的状态。IpJ28资讯网——每日最新资讯28at.com

302怎么确定重定向路径

当收到 HTTP 状态码 302 表示临时重定向时,客户端需要根据响应头中的 Location 字段确定重定向的路径。这个 Location 字段包含了重定向的目标 URL。IpJ28资讯网——每日最新资讯28at.com

具体步骤如下:IpJ28资讯网——每日最新资讯28at.com

  1. 发送请求:客户端发送 HTTP 请求到服务器。
  2. 接收响应:客户端收到服务器的响应,如果响应状态码是 302,则说明存在临时重定向。
  3. 查看响应头:客户端会查看响应头中的 Location 字段,该字段包含了重定向的目标 URL。
  4. 访问重定向路径:客户端根据 Location 字段中的 URL 发送新的 HTTP 请求,以访问重定向的路径。

例如,在使用 JavaScript 进行 HTTP 请求时,可以通过 XMLHttpRequest 对象的 getResponseHeader() 方法来获取响应头中的 Location 字段,或者通过浏览器的开发者工具查看网络请求的响应头。IpJ28资讯网——每日最新资讯28at.com

在使用其他编程语言或工具进行 HTTP 请求时,也可以通过相应的方式获取响应头中的 Location 字段,以确定重定向的路径。IpJ28资讯网——每日最新资讯28at.com

IpJ28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-81871-0.htmlpromise(A).catch(f1).then(f2),f1执行后f2会执行吗,为什么?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 父组件使用v-model,子组件竟然不用定义props和emit抛出事件

下一篇: Springboot 3.1.x: 快速掌握事件驱动的实用技巧

标签:
  • 热门焦点
  • 6月iOS设备性能榜:M2稳居榜首 A系列只能等一手3nm来救

    没有新品发布,自然iOS设备性能榜的上榜设备就没有什么更替,仅仅只有跑分变化而产生的排名变动,毕竟苹果新品的发布节奏就是这样的,一年下来也就几个移动端新品,不会像安卓厂商,一
  • 掘力计划第 20 期:Flutter 混合开发的混乱之治

    在掘力计划系列活动第20场,《Flutter 开发实战详解》作者,掘金优秀作者,Github GSY 系列目负责人恋猫的小郭分享了Flutter 混合开发的混乱之治。Flutter 基于自研的 Skia 引擎
  • 一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • 之家push系统迭代之路

    前言在这个信息爆炸的互联网时代,能够及时准确获取信息是当今社会要解决的关键问题之一。随着之家用户体量和内容规模的不断增大,传统的靠"主动拉"获取信息的方式已不能满足用
  • 自动化在DevOps中的力量:简化软件开发和交付

    自动化在DevOps中扮演着重要角色,它提升了DevOps的效能。通过自动化工具和方法,DevOps团队可以实现以下目标:消除手动和重复性任务。简化流程。在整个软件开发生命周期中实现更
  • 零售大模型“干中学”,攀爬数字化珠峰

    文/侯煜编辑/cc来源/华尔街科技眼对于绝大多数登山爱好者而言,攀爬珠穆朗玛峰可谓终极目标。攀登珠峰的商业路线有两条,一是尼泊尔境内的南坡路线,一是中国境内的北坡路线。相
  • 签约井川里予、何丹彤,单视频点赞近千万,MCN黑马永恒文希快速崛起!

    来源:视听观察永恒文希传媒作为一家MCN公司,说起它的名字来,可能大家会觉得有点儿陌生,但是说出来下面一串的名字之后,或许大家就会感到震惊,原来这么多网红,都签约这家公司了。根
  • 小米汽车电池信息疑似曝光:容量101kWh,支持800V高压快充

    7月14日消息,今日一名博主在社交媒体发布了一张疑似小米汽车电池信息的照片,显示该电池包正是宁德时代麒麟电池,容量为101kWh,电压为726.7V,可以预测小
  • 苹果140W USB-C充电器:采用氮化镓技术

    据10 月 30 日 9to5 Mac 消息报道,当苹果推出新的 MacBook Pro 2021 时,该公司还推出了新的 140W USB-C 充电器,附赠在 MacBook Pro 16 英寸机型的盒子里,也支
Top