Promise构造函数的方法1:Promise.resolve()和Promsie.reject()

深入理解 Promise.resolve () 方法 阅读详情

1.promise.resolve()

它是成功状态的Promsie的一种简写方式。

参数传递:(以下重点掌握一般参数的传递):

1)一般参数和参数为空的情况下,直接返回一个resolved状态的Promise对象;

2)如果参数是Promise的实例,将不做任何修改、原封不动地返回这个实例;

3)如果参数是具有then方法的对象,Promise.resolve()会将这个对象转为Promise对象,并立即执行这个对象的then方法。

ps: 重视返回的Promise的状态对其后者执行的函数的影响

<script>
// Promise.resolve()
    // 1.Promise.resolve()的本质
        // 它是成功状态的Promsie的一种简写方式
        //new Promise(resolve => resolve('foo'));
        // 简写
        //Promise.resolve('foo');

    // 2.参数
            // 2.1一般参数的传递:(重点)
            // 调用Promise.resolve()方法传递的一般参数原封不动地向后传递,由then的第一个处理函数的形参接收
            Promise.resolve('foo').then(data => {
                console.log(data); //输出 foo
            })

            // 2.2 Promise.resolve()传递一个Promise作为参数:(了解)
            //当Promise.resolve()接收的是Promise对象时,直接返回这个Promise对象,什么都不做
            const p1 = new Promise(resolve => {
                setTimeout(resolve,1000,'我执行了');
                // 上面这句代码等同于:
                // setTimeout(()=>{
                //     resolve("我执行了");
                // },1000);
                // ps:也就是说setTimeout的第三个参数是传递到它的处理函数中做参数的
            })
            Promise.resolve(p1).then(data => {
                console.log(data); //一秒后输出:我执行了
            });
            // 等价于:
            p1.then(data => {
                console.log(data); //一秒后输出:我执行了
            })
            console.log(Promise.resolve(p1) === p1); //输出true

            // 我们可以衍生出:
            // 当resolve函数接收的是Promise对象时,后面的then会根据传递的Promise对象的状态变化决定执行哪一个回调
            new Promise(resolve => resolve(p1)).then(data => {
                console.log(data); //一秒后输出:我执行了
            })

</script>

2.Promise.reject()

它是失败状态的Promsie的一种简写方式:

new Promise(reject => reject('reason'));

 简写:Promise.reject('reason');

参数传递:

不管什么参数,都会原封不动地向后传递,作为后续方法的参数。

扩展:

学完这两个方法以后,我们返回一个错误的Promise变得更简便:

 new Promise((resolve,reject)=>{
                resolve(123)
            })
            .then(data => {
                console.log(data);
                //返回一个失败状态的Promise:
                return Promise.reject('reason');
            })
            .catch(err => console.log(err));

Promise Promise是什么? Promise:承诺者模式,它是ES6新增的一个内置类,基于Promise可以有效管理“异步编程”,避免回调地狱 从语法上来说promise是一个构造函数 从功能上来说promise对象来封装一个异步操作,并可获取其成功/失败的结果值 什么是回调地狱? JQ中的ajax管理,是基于回调函数的方式管理的「请求成功后,会触发success回调函数执行,result就是本次请求获取的结果」;如果我们想实现ajax串行,需要把下一个请求发送,放在上一个请求成功的回调函数中处理,. 阅读详情

相关推荐

上善若水,写 SAP CDS View 时也要让数据自己流到该去的地方

本文探讨了ABAP CDS View开发中的"上善若水"哲学。作者指出,优秀的CDS View设计应像水系一样分层流动:底层保持业务对象边界清晰,中间层处理组合关系,消费层按需暴露字段。这种分层设计比单一巨型视图更灵活、可维护且性能更优。文章强调CDS View应准确表达业务关系(如通过cardinality),并建议优先使用SAP发布的接口视图而非直接访问底层表。最后指出权限控制等逻辑应下沉到数据模型层,而非在各消费端重复实现。全文通过水的特性比喻了良好的CDS View设计原则。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1640

Promise的九大方法(resolve、reject、then、catch、finally、all、allSettled、race、any)你都用过那些?

前言: 定期复盘---今天我们来复习一下 Promise 的几个方法,分别是:Promise.resolve、Promise.reject、Promise.then、Promise.catch、Promise.finally、Promise.all、Promise.allSettled、Promise.race、Promise.any; 接下来我们一起去看看吧,从深处去了解他们有什么区别!!!

程邓楠的博客 5万+

3.6KW储能双向逆变器(原理图PCB源码)

通过百度网盘分享的文件:优快云 3.6KW储能双向逆变器 链接:https://pan.baidu.com/s/18NN6KnpywFUIDtAQ4b1LTg?pwd=csdn 提取码:csdn

2401_86562087的博客 2183

Promise.resolve的作用

Promise.resolve方法有下面三种形式: Promise.resolve(value); Promise.resolve(promise); Promise.resolve(thenable); Promise.resolve可以把,同步值,一个promise,一个thenable类型的对象都包裹成一个新的Promise。 提供了创建一个Promise的副本的...

weixin_30399055的博客 2162

三甲医院网络架构与安全建设实战

华为OceanStor] [华为OceanStor][PACS存储双活] [HIS数据库同步]患者隐私 数据脱敏 天清Web防火墙动态脱敏策略。主数据中心 --[OTV专线]-- 备数据中心。实现医疗业务网/卫生专网/互联网三网隔离。核心业务配置(华为CE6865)自动备份配置(每天02:00)安全事件响应(30分钟SLA)漏洞扫描(每周日00:00)实现医疗物联网统一接入管控。五、等保2.0合规关键配置。堡垒机登录(双因素认证)四、医疗物联网安全方案。

有小小的远大抱负 1911

Python使用netmiko配置华为交换机

1.netmiko就是专门为网络设备做的模块,非常强大。1.更适合网络设备的自动化运维模块。2、批量配置变更、备份。1.安装netmiko。2. 创建SSH连接。一、netmiko介绍。

博然的宝藏库 2795

Promise原理和问题集锦

参考网站: https://www.cnblogs.com/lvdabao/p/es6-promise-1.html https://www.cnblogs.com/minigrasshopper/p/9141307.html https://segmentfault.com/a/1190000011652907 promise原理 其实,promise就是三个状态。利用观察者模式...

juse__we的博客 2114

【10. Wi-Fi 通用模组-小米 IoT 平台-如何进行硬件调试】

调试APP功能:从米家服务器缓存读取设备状态,等同于米家APP 的环境,开发者使用该调试器可模拟用户使用设备的实际情况,即调试米家 App 中的扩展程序。- 调试固件:调试器从固件读取设备状态,用于调试设备模组固件的某个单项功能,开发者使用该调试器可针对性地调试设备的某个功能。小爱语控测试工具:如果当前产品可被小爱语控,则可以使用该工具调试语控效果。调试APP功能(云端缓存)

tuoyuanO的博客 1041

方法 手写promise_ES5 | 手写Promsie

▲ 点击上方蓝字关注我▲文 / 景朝霞来源公号 / 朝霞的光影笔记ID / zhaoxiajingjing目录:0 / Promise的基本用法1 / 手写 Promise的基本框架2 / Promise的then用法3 / 手写then方法(1)then方法:返回一个新的promise实例(2)resolvePromise 判断x(3)如何判断是Promise4 / Promise对...

weixin_35728532的博客 275

利用绝对式编码器实现电机无限旋转的配置与优化

本文详细解析了如何利用绝对式编码器实现电机的无限旋转功能。通过切换驱动器编码器工作模式、精确计算逻辑位置范围等关键配置步骤,解决了传统方案在多圈计数溢出时的定位难题。该方案无需硬件改造,适用于大型回转台、连续供料系统等需要大范围连续绝对定位的自动化场景。

weixin_29184371的博客 239

论文阅读——Bayesian Knowledge Fusion(贝叶斯知识融合)

该篇论文解决了不确定环境中的信息融合问题。想象一下,有多位专家针对同一情况构建概率模型,我们希望汇总他们提供的信息。直接合并每个信息可能会遇到几个问题。例如,专家们可能不同意某个事件发生的概率,或者他们可能不同意两个事件之间因果关系的方向(例如,一个人认为 A 导致 B,而另一个人认为 B 导致 A)。他们甚至可能不同意概率网络中一组变量之间的整个依赖结构。

qq_64164071的博客 1497

根据Promsie规范实现一个简单的Promise

第一部分 Promise规范(个人解读) 1.Promise的状态 pending为初始状态可以理解为Promise在进行中 fulfiled为成功状态只能从pending状态触发reslove方法(参数为value)变为fufiled状态(有且只有一次的状态改变) rejected为失败状态只能从pending状态触发reject方法(参数为reason)变为rejected状态(有且只有一次的状态改变) 注:状态的变化有且只有一次变化 2.then then方法用于访问最终结果 例: pr

PPZZ_1160392544的博客 502

告别黑盒调试:用MMSegmentation可视化工具链,从训练到评估一目了然

本文介绍了如何利用MMSegmentation的可视化工具链,从训练到评估实现语义分割模型的透明化调试。通过整合日志分析、混淆矩阵、PR曲线等工具,开发者可以快速定位模型问题,优化性能。文章详细展示了训练曲线分析、性能剖析、混淆矩阵解读和PR曲线应用等关键步骤,帮助用户告别黑盒调试,提升模型开发效率。

weixin_29100927的博客 104

手动实现Promise/A+(二):实现promsie中的其它方法

Promise 的其他 API 实现 then 方法基本就是 promise 的全部内容,至于 catch、resolve、reject 等方法都是在原有的基础上做的扩展或者封装,这些方法并不算是 promise 的核心。下面就一一实现这些方法。 catch catch 是 promise 实例上的方法,添加一个拒绝态的回调到当前 promise,然后返回一个新的 promise。实现如下: catch(errCbs){ return this.then(null, errCbs); } reso

qq_42062727的博客 232

Altium Designer系列: 软件系统参数配置保存

【Altium Designer实践】 软件系统参数配置保存 作者 CodeAllen ,转载请注明出处 目录设置中文菜单高亮模式设置文件关联pcb设置布线设置保存配置文件(复用) 设置中文菜单 DXP->Preferences 高亮模式设置 文件关联 pcb设置 布线设置 保存配置文件(复用) ......

CodeAllen嵌入式 2018

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

promise用法_如何根据 promsie A+ 实现一个 Promise

如何根据 promsie A+ 实现一个 PromiseDate: 2019-12-19Abstract这篇文章会根据 Promise A+ 规范实现一个 promise。为了不和原生的 Promise 搞混,我们把我们将要实现的 Promsie 叫做 PromiseJ。PromiseJ 实现 Promise A+ 规范中的 thenable 和 "The Promise Resolution P...

weixin_39684052的博客 200

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

promsie的基础与作用

promise Promise对象有以下两个特点。 (1)对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。这也是Promise这个名字的由来,它的英语意思就是“承诺”,表示其他手段无法改变。 (2)一旦状态改变,就...

weixin_45191052的博客 396

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JavaScript异步之Promise机制 - OOD 到 A+规范

前言面向对象的设计思想对于开发者更加友好,可进行数据封装、模块化复用、 降低代码的复杂度和维护成本而Promis用于解决JS中的异步回调问题,它是面向对象设计思想在异步编程中的一种实践,包括类、实例、实例方法、类方法(静态方法)、状态封装等一些OOP概念同时Promise 设计遵循Promise/A+ 规范,如果一个对象/函数(Thenable)满足该规范中关于 then 方法的行为定义,那么称它为Promise。

CC_77123的博客 316

一步一步手写promise[一]

前些日子,同事分享了手写promise,它的思路清晰 一步一步的梳理。 于是乎后来我自己尝试来写一写,于是乎有了此篇浅显的文章。 我们看一个基础的原生promise var p1 = new Promise((resolve, reject) => {}) var p2 = new Promise((resolve , reject) => { resolve(1) })...

Riptide 331

Promsie源码解析一步到位

碎碎念: 亲爱的读者:你好!我叫 Changlon —— 一个非科班程序员、一个致力于前端的开发者、一个热爱生活且又时有忧郁的思考者。 如果我的文章能给你带来一些收获,你的点赞收藏将是对我莫大的鼓励! 我的邮箱:thinker_changlon@163.com 我的Github: https://github.com/Changlon 本章我将带领大家手写一个符合promise/a+ 规范的Promise。可以说这是前端工程师必须要掌握的一个技术,在项目中使用到的非常多。 那么promsie究..

Web前端开发工程师 387

async 和 await(详解)

一、async 和 await promise 使用 .then 链式调用,但也是基于回调函数 async/await 更加优雅的异步编程的写法 1.它是消灭异步回调的终极武器 2.它是同步语法,也就是用同步的写法写异步的代码 案例1:promise异步加载图片 分别使用 .then 和 await 来获取结果 区别 1.await 完全没有回调函数 2.await 是同步写法,异步操作 3.await 后面不仅仅可以接 promise对象,还可以接 async 函数 //里面函数为AJAX,因此是

前端知识库 2万+

promsie实现与并发队列控制解析

源码地址 从一个简单案例讲起 promise 基本概念 ???? console.log('1. start'); const promise=new Promise((resolve,reject)=>{ console.log('2. enter Executor'); resolve('hello promise'); }) promise.then(res=>{ console.log(res,'success'); console.log('4. resolve

前端小愤青 676

JavaScript异步之拆解 Promise/A+ 规范 01

结合Promise A+规范,串联 Axios拦截器处理 -》组件.catch()的完整链路,直观理解如何捕获业务需要的错误信息return Promise.reject('error')。then.call(x, onFulfilled, onRejected) 作用:调用函数,并显式指定函数内部的 this 执向 x。目的:让当前 .then 返回的 promsie2 的状态跟随 Promise.reject('error')等价于 x.then(onFulfilled, onRejected)

CC_77123的博客 161

根据 Promises/A+规范 手写 Promsie

前言 上一篇文章 JavaScript Promise基础(对于 Promise用法不熟悉的,可以先看这篇文章,理解了再来看这篇文章,会对你有很大帮助)中,介绍了Promise的基本使用,在这篇文章中,我们将根据 Promises/A+ 规范试着自己来写一个Promise,主要是学习Promise的内部机制与它的编程思想。 Promise到底是什么? Promise到底是啥玩意呢?是一个类、数组、...

weixin_34195364的博客 122

Promise控制ajax异步,将异步操作队列化

Promise 方法可以控制 ajax 异步,将异步操作队列化,按照期望的顺序执行,返回符合预期的结果

qq_38830589的博客 436
上一篇: JavaScript - Promise的catch()方法,知识扩展finally方法
下一篇: Promise构造函数的方法2
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值