Promise击鼓传花的游戏

Promise击鼓传花的游戏

  • Promise系列导航
  • 前言
  • 一、学习Promise的原因
  • 二、揭开击鼓传花游戏的面纱
  • 补充小知识

Promise系列导航

1.Promise本质击鼓传花的游戏
2.Promise四式击鼓
3.Promise击鼓传花
4.Promise花落谁家知多少


前言

👨‍💻👨‍🌾📝记录学习成果,以便温故而知新
  1. Promise系列文章是本人学习VUE的准备知识,所以就归为VUE系列了。根据MDN的描述,应该是“JavaScript 标准内置对象”,特此说明。
  2. Promise系列文章主要是学习MDN中 Promise的心得体会,MDN地址。

一、学习Promise的原因

在学VUE时,遇到了如下代码如何返回的问题。

html2canvas(this.$refs.imgBox, {height: this.$refs.imgBox.scrollHeight,	width: this.$refs.imgBox.scrollWidth,
}).then((canvas) => {canvas.toDataURL("image/png")
});

然后发现这好像是Promise知识点,然后发现如下方法能解决:

async saveImg(){const img = await getImg();
}
getImg(){return html2canvas(this.$refs.imgBox, {height: this.$refs.imgBox.scrollHeight,	width: this.$refs.imgBox.scrollWidth,}).then((canvas) => {return canvas.toDataURL("image/png")});
}

二、揭开击鼓传花游戏的面纱

MDN说:

Promise 对象表示异步操作最终的完成(或失败)以及其结果值。

MDN又说:

一个 Promise 必然处于以下几种状态之一:

  • 待定(pending):初始状态,既没有被兑现,也没有被拒绝。
  • 已兑现(fulfilled):意味着操作成功完成。
  • 已拒绝(rejected):意味着操作失败。

MDN然后是一张状态图,看着挺美,由于害怕有盗图嫌疑,就不贴过来了。

回归正题,上一段经典代码

new Promise((resolve, reject) => {console.log("构造函数内:" + (typeof resolve));//就没人好奇resolve究竟是个啥??console.log("构造函数内:" + (typeof reject));//就没人好奇reject究竟是个啥??console.log("开始击鼓");Math.random()>0.5 ? resolve("紫牡丹") : reject("黄牡丹")
})
.then(flower => { console.log(flower); return "魏紫" }, flower => { console.log(flower); return "姚黄" })
.then(flower => console.log(flower))
.catch(flower => console.log(flower))//由于代码中没有抛出异常,这行并不执行
.finally(() => console.log("姚黄魏紫开次第,不觉成恨俱零凋"));console.log("构造函数外:" + (typeof resolve));//就没人好奇resolve究竟是个啥??
console.log("构造函数外:" + (typeof reject));//就没人好奇reject究竟是个啥??

两次的执行结果:
在这里插入图片描述
从以上代码与执行结果看,除了好奇的输出外,正好是个击鼓传花的过程。

基于“击鼓传花”的游戏,把状态按照游戏的语境重新定义一下:

状态游戏中
待定(pending)开始击鼓
已兑现(fulfilled)(合称)敲定传紫牡丹(统称)传花
已拒绝(rejected)传黄牡丹

由于MDN每个方法基本都是洋洋洒洒的大段,所以后面分“Promise四式击鼓”、“Promise击鼓传花”与“Promise花落谁家知多少”三个专题来介绍

以下3个方法在“Promise四式击鼓”专题介绍

  1. Promise() constructor
  2. Promise.reject()
  3. Promise.resolve()
  4. async function

以下3个方法在“Promise击鼓传花”专题介绍

  1. Promise.prototype.then()
  2. Promise.prototype.catch()
  3. Promise.prototype.finally()

以下4个方法在“Promise花落谁家知多少”专题介绍

  1. Promise.all()
  2. Promise.any()
  3. Promise.race()
  4. Promise.allSettled()

补充小知识

魏紫姚黄原指宋代洛阳两种名贵牡丹品种,一出于魏仁浦家,一出于姚氏民家,故以此为名。后泛指名贵花卉。也作“姚黄魏紫”。出处宋·欧阳修《绿竹堂独饮》诗:“姚黄魏紫开次第,不觉成恨俱零凋。”
以上的出处来自某度老师。

既然玩的是击鼓传花的游戏,那就要传高雅的“魏紫姚黄”,因为“姚黄”,也就是黄牡丹,她有个“黄”字,所以只能委屈其代表“已拒绝”。

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

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

相关文章

[架构之路-225]:计算机硬件与体系结构 - 分类方法大汇总: RISC, CISC

目录 一、分类方法汇总 二、指令流和数据流的关系分类 三、Flynn 分类:指令并行处理 四、根据指令集架构(ISA)分类 4.1 分类 4.2 开源的RISC-V与封闭的RISC指令集架构比较 4.3 RISC-V的演进路径 4.4 RISC-V与中国芯片自研 4.4 五阶流…

[React源码解析] React的设计理念和源码架构 (一)

任务分割异步执行让出执法权 文章目录 1.React的设计理念1.1 Fiber1.2 Scheduler1.3 Lane1.4 代数效应 2.React的源码架构2.1 大概图示2.2 jsx2.3 Fiber双缓存2.4 scheduler2.5 Lane模型2.6 reconciler2.7 renderer2.8 concurrent 3.React源码调试 1.React的设计理念 Fiber: 即…

调度程序以及调度算法的评价指标

1.调度器/调度程序 调度程序决定调度算法,时间片大小 ②,③由调度程序引起,调度程序决定: 1.调度时机 创建新进程进程退出运行进程阻塞I/O中断发生(可能唤醒某些阻塞进程)非抢占式调度策略,只有运行进程阻塞或退出…

Web版Photoshop来了,用到了哪些前端技术?

经过 Adobe 工程师多年来的努力,并与 Chrome 等浏览器供应商密切合作,通过 WebAssembly Emscripten、Web Components Lit、Service Workers Workbox 和新的 Web API 的支持,终于在近期推出了 Web 版 Photoshop(photoshop.adobe…

Foxit PDF

Foxit PDF 福昕PDF 软件,可以很好的编辑PDF文档。 调整PDF页面大小 PDF文档中,一个页面大,一个页面小 面对这种情况,打开Foxit PDF 右键单击需要调整的页面,然后选择"调整页面大小". 可以选择…

视频讲解|含可再生能源的热电联供型微网经济运行优化(含确定性和源荷随机两部分代码)

1 主要内容 该视频为《含可再生能源的热电联供型微网经济运行优化》代码讲解内容,对应的资源下载链接为考虑源荷不确定性的热电联供微网优化-王锐matlab(含视频讲解),对该程序进行了详尽的讲解,基本做到句句分析和讲解…

【单片机】13-实时时钟DS1302

1.RTC的简介 1.什么是实时时钟(RTC) (rtc for real time clock) (1)时间点和时间段的概念区分 (2)单片机为什么需要时间点【一定的时间点干什么事情】 (3)RTC如何存在于…

【单片机】11-步进电机和直流电机

1.直流电机 1.什么是电机 电能转换为动能 2.常见电机 (1)交流电机【大功率】:两相【200W左右】,三相【1000W左右】 (2)直流电机【小功率】:永磁【真正的磁铁】,励磁【电磁铁】 &…

免费 AI 代码生成器 Amazon CodeWhisperer 初体验

文章作者:浪里行舟 简介 随着 ChatGPT 的到来,不由让很多程序员感到恐慌。虽然我们阻止不了 AI 时代到来,但是我们可以跟随 AI 的脚步,近期我发现了一个神仙 AI 代码生产工具 CodeWhisperer ,它是一项基于机器学习的服…

【多模态融合】TransFusion学习笔记(1)

工作上主要还是以纯lidar的算法开发,部署以及系统架构设计为主。对于多模态融合(这里主要是只指Lidar和Camer的融合)这方面研究甚少。最近借助和朋友们讨论论文的契机接触了一下这方面的知识,起步是晚了一点,但好歹是开了个头。下面就借助TransFusion论文…

C/C++字符函数和字符串函数详解————内存函数详解与模拟

个人主页:点我进入主页 专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂。 目录 1.前言 2 .memcpy函数 3.memmove函…

RTP/RTCP 协议讲解

文章目录 前言一、RTP 协议1、RTP 协议概述2、RTP 工作机制3、RTP 协议的报文结构4、wireshark 抓取 RTP 报文 二、RTCP 协议1、RTCP 协议概述2、RTCP 工作机制3、RTCP 数据报4、wireshark 抓取 RTCP 报文 三、RTSP 和 RTP 的关系四、易混淆概念1、RTP over UDP 和 RTP over RT…

一键智能视频语音转文本——基于PaddlePaddle语音识别与Python轻松提取视频语音并生成文案

前言 如今进行入自媒体行业的人越来越多,短视频也逐渐成为了主流,但好多时候是想如何把视频里面的语音转成文字,比如,录制会议视频后,做会议纪要;比如,网课教程视频,想要做笔记&…

【软件设计师-中级——刷题记录6(纯干货)】

目录 管道——过滤器软件体系结构风格优点:计算机英语重点词汇:单元测试主要检查模块的以下5个特征:数据库之并发控制中的事务:并发产生的问题解决方案:封锁协议原型化开发方法: 每日一言:持续更新中... 个…

CocosCreator3.8研究笔记(二十五)CocosCreator 动画系统-2d骨骼动画spine

大家都知道,在游戏中 一般用帧动画或者骨骼动画,实现 人物的行走、奔跑、攻击等动作。 帧动画,在上一篇已经做了介绍,感兴趣的朋友可以前往阅读: CocosCreator3.8研究笔记(二十四)CocosCreator …

linux入门---信号的保存和捕捉

目录标题 信号的一些概念信号的保存pending表block表handler表 信号的捕捉内核态和用户态信号的捕捉 信号的一些概念 1.进程会收到各种各样的信号,那么程序对该信号进行实际处理的动作叫做信号的递达。 2.我们之前说过当进程收到信号的时候可能并不会立即处理这个信…

计算机考研 | 2016年 | 计算机组成原理真题

文章目录 【计算机组成原理2016年真题44题-9分】【第一步:信息提取】【第二步:具体解答】 【计算机组成原理2016年真题45题-14分】【第一步:信息提取】【第二步:具体解答】 【计算机组成原理2016年真题44题-9分】 假定CPU主频为5…

51单片机可调幅度频率波形信号发生器( proteus仿真+程序+原理图+报告+讲解视频)

51单片机可调幅度频率信号发生器( proteus仿真程序原理图报告讲解视频) 讲解视频1.主要功能:2.仿真3. 程序代码4. 原理图4. 设计报告5. 设计资料内容清单&&下载链接***[资料下载链接](https://docs.qq.com/doc/DS1daV1BKRXZMeE9u)*** 51单片机可…

软件工程与计算总结(三)示例项目描述

本节介绍一个标准的项目描述,大家可以作为蓝本学习~ 目录 一.背景 二.目标 三.系统用户 四.用户访谈要点 1.收银员 2.客户经理 3.总经理 4.系统管理员 五.项目实践过程 一.背景 A是一家刚刚发展起来的小型连锁商店,其前身是一家独立的小百货门面…

算法-数学-斜率-直线上最多的点数

算法-数学-斜率-直线上最多的点数 1 题目概述 1.1 题目出处 https://leetcode.cn/problems/max-points-on-a-line/ 1.2 题目描述 给你一个数组 points ,其中 points[i] [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。 2 暴力搜索斜率…