Promise.allSettled 的 Polyfill 处理
如果因为浏览器太过老旧,不支持最新的 Promise.allSettled API,我们可以使用 polyfill 技术,简单地自己用 Promise.all, 自行实现 Promise.allSettled. 完整代码实现如下: if (!Promise.allSettled) { const rejectHandler = reason => ({ status: 'r
汪子熙趣味接龙游戏实现的参考资源
参考资源(参考或引用他人资源及出处)本作品未引用或者复制其他 kitten 作品的工程文件或者源代码,只参考了Kitten编程猫源码编辑工具自带的帮助文档。该文档的入口:在编辑器右上角,点击“帮助”-> “源码图鉴”: 帮助文档如下所示: 制作用软件及运行环境 开发工具 Kitten编程猫源码编辑工具,版本号v3.7.11Kitten编程猫格式工厂,版本号 v3.3.1
汪子熙趣味接龙游戏实现里原创部分的亮点
本作品使用 Kitten编程猫这个具有国内自主知识产权的工具开发而成,工程里每一个积木的使用都是作者和原创。最值得一提的原创部分罗列如下: 使用列表的数据结构来存储将近2万个成语词汇 根据用户输入的成语,在将近2万个成语词汇中,检索出其第一个字 等于用户输入的成语的第一个字的成语,即成语接龙成功与否的判定算法设计。在本作品第一版的程序实现里,作者在“重复执行”的积木里,使用了很多类似 “列
使用 Kitten 开发一款趣味成语接龙游戏
每一轮接龙成功后,初始接龙和成功接龙的成语,都会显示在作品的接龙记录里,便于使用者学习和记忆。通过积分的方式,能激励用户开动脑筋,努力完成接龙。 本作品极具智能和体贴性,如果用户接龙失败,作品会帮助用户,自动从其本地的成语库中智能地查找能够匹配当前这一轮接龙的成语,并显示在接龙记录了。这样一来,就算用户接龙失败,看到“游戏结束“的提示,但是在接龙记录里能够看到正确答案,同样有所收获,达到了成语积
汪子熙趣味成语接龙游戏的设计初衷
我国的汉语博大精深,其中数以万计的四字成语更是汉语中一颗颗璀璨的明珠,凝聚着中华民族几千年文明的精华。从小接触这些成语,对于小学生积累语汇,提高文学素养,和学习文言文方面有着很大的帮助。 本作品以益智游戏的方式,让小学生学习积累成语的过程,显得不那么枯燥。每天只需使用该作品几分钟,即可对本作品库中将近两万个四字成语库中随机挑选出的成语,进行点滴积累。本作品可以在潜移默化的过程中,帮助学生扩大自己
趣味成语接龙游戏里,如何判断用户输入的成语接龙成功?
本文给出了一种解决方案,采用如下的 kitten 积木组合块实现。 根据变量“检查接龙的返回值”,分别执行相应的逻辑。 如果返回值为-1,说明用户输入的词语长度不为4.如果返回值为-2,说明用户输入的四字词语不是成语。如果返回值为-3,说明用户虽然输入了一个四字成语,但该成语的第一个字,和待接龙成语的第四个字不是同一个字。以上三种情况都说明接龙失败,均应该发送广播“游戏结束”,并退出无限循
汪子熙趣味成语接龙的游戏软件设计架构说明
@[toc] 本作品采用 Kitten编程猫 v3.7.11开发而成。 工程里主要包含一个背景和六个角色: 下面是这些素材的一一介绍。 背景背景素材负责绘制接龙界面的背景。在背景素材里,定义了两个函数: (1) 播放游戏音乐:用户进入正式的接龙环节时,执行该函数,播放轻柔的背景音乐。(2) 播放片头音乐:用户进入游戏之后,选择初始接龙成语的过程中,播放欢快的片头音乐,仿佛在为用户
汪子熙趣味成语接龙的游戏软件使用文档说明
@[toc] 趣味成语接龙使用手册作者提交的参赛作品是一个压缩包,里面包含的资源如下图所示。本手册以 windows平台的.exe执行文件为例,介绍本作品的使用方法。双击“成都小学-汪子熙-作品-成语接龙.exe”,启动应用。 点击三角箭头,进入游戏界面。 点击左边的转盘,选择一个初始成语作为接龙的起始成语。 转盘会从作品将近两万个成语中随机挑选出一个。如果觉得随机挑选出来
SAP ABAP OData 服务如何支持删除(Delete)操作试读版
正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,可以分为三大类。因此本教程也分为三大部分,分别进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SA
SAP ABAP OData 服务如何支持创建(Create)操作试读版
正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,可以分为三大类。因此本教程也分为三大部分,分别进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SA
SAP ABAP OData 服务如何支持 $orderby (排序)操作试读版
正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,可以分为三大类。因此本教程也分为三大部分,分别进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SA
使用 Postman 工具高效管理和测试 SAP ABAP OData 服务试读版
正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,可以分为三大类。因此本教程也分为三大部分,分别进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SA
SAP ABAP OData 服务如何支持 $filter (过滤)操作试读版
正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,可以分为三大类。因此本教程也分为三大部分,分别进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SA
SAP 电商云 Spartacus UI 和 Accelerator UI 里的 ASM 模块
https://spartacus-demo.eastus.cloudapp.azure.com/electronics-spa/en/USD/?asm=true url 后面加了 ?asm=true 之后,在登录界面上方也会多出一个 Start Session 的按钮: 选择当前 site 上一个客户,比如 Jerry Wang: 从源代码分析,Spartacus UI 上确实没有
使用 JavaScript Promise 读取 Github 某用户的数据
代码如下: // Make a request for user.json fetch('/article/promise-chaining/user.json') // Load it as json .then(response => response.json()) // Make a request to GitHub .then(user
JavaScript 在 Promise.then 方法里返回新的 Promise
看一个实际的例子: loadScript("/article/promise-chaining/one.js") .then(function(script) { return loadScript("/article/promise-chaining/two.js"); }) .then(function(script) {
JavaScript 里的 Promise Chaining
Promise 通常被定义为最终将可用的值的代理(proxy)。 问题背景回调:我们有一系列异步任务要一个接一个地执行——例如,加载脚本。 我们怎样才能很好地编码呢? Promise 提供了一些方法来做到这一点:Promise 链。 它看起来像这样: new Promise(function(resolve, reject) { setTimeout(() => resol
JavaScript 异步操作里的嵌套回调函数
嵌套回调函数经常用在两个逻辑上具有先后顺序的异步操作场景中。 思考下面的问题:我们如何按顺序加载两个脚本? 自然的解决方案是将第二个 loadScript 调用放在回调中,如下所示: loadScript('/my/script.js', function(script) { alert(`Cool, the ${script.src} is loaded, let
什么是 JavaScript 里的异步操作和回调函数
JavaScript 宿主环境提供了许多功能,允许开发人员安排异步操作。 换句话说,我们可以立即触发一个动作,但这些动作需要耗费一定的时间才能完成执行。 setTimeout 函数就是一个典型的例子。 看看函数 loadScript(src),它使用给定的 src 加载脚本: function loadScript(src) { // creates a <script>
使用 Promise 来改写 JavaScript 的加载逻辑
传统的基于 callback 的实现方式: function loadScript(src, callback) { let script = document.createElement('script'); script.src = src; script.onload = () => callback(null, script); scri