JavaScript的代码回调方法及系统技术方案

技术编号:36529990 阅读:16 留言:0更新日期:2023-02-01 16:11
本发明专利技术提供了一种JavaScript的代码回调方法及系统,涉及软件设计技术领域,包括:步骤S1:引入代码工具库;步骤S2:使用所述代码工具库改造事件类回调代码;步骤S3:使用所述代码工具库改造非事件类回调代码;步骤S4:通过改造后的事件类回调代码和非事件类回调代码,执行控制链式注册方法。本发明专利技术能够便于开发和后续的维护。续的维护。续的维护。

【技术实现步骤摘要】
JavaScript的代码回调方法及系统


[0001]本专利技术涉及软件设计
,具体地,涉及一种JavaScript的代码回调方法及系统。

技术介绍

[0002]前端开发编码过程中,当JavaScript代码中回调过多,会导致代码难以维护等问题,一般的回调,可通过Promise语法来解决;但是如事件绑定、自定义的回调方法等会多次触发回调,目前没有好的行业解决方案。

技术实现思路

[0003]针对现有技术中的缺陷,本专利技术提供一种JavaScript的代码回调方法及系统。
[0004]根据本专利技术提供的一种JavaScript的代码回调方法及系统,所述方案如下:
[0005]第一方面,提供了一种JavaScript的代码回调方法,所述方法包括:
[0006]步骤S1:引入代码工具库;
[0007]步骤S2:使用所述代码工具库改造事件类回调代码;
[0008]步骤S3:使用所述代码工具库改造非事件类回调代码;
[0009]步骤S4:通过改造后的事件类回调代码和非事件类回调代码,执行控制链式注册方法。
[0010]优选地,所述步骤S2包括:
[0011]步骤S2.1:确定待改造的事件类回调代码;
[0012]步骤S2.2:将事件类回调代码改造为链式调用。
[0013]优选地,所述步骤S3包括:
[0014]步骤S3.1:确定待改造的非事件类回调代码;
[0015]步骤S3.2:调用时,改造非事件类回调代码改造为链式。
[0016]优选地,所述步骤S4包括:
[0017]步骤S4.1:控制注册方法的调用方向:
[0018]向后调用注册:context.call();
[0019]调用当前注册:context.self();
[0020]向前调用注册:context.prev();
[0021]步骤S4.2:控制调用时的逻辑递归。
[0022]优选地,所述方法还包括:调用频率控制防抖和调用频率控制节流;
[0023]其中,注册方法调用频率控制之防抖:
[0024]从代码工具库中引入防抖控制函数,注册调用方法时一并传入,通过防抖控制函数传参来控制调用频率;
[0025]注册方法调用频率控制之节流:
[0026]从代码工具库中引入节流控制函数,注册调用方法时一并传入,通过节流控制函
数传参来控制调用频率。
[0027]第二方面,提供了一种JavaScript的代码回调系统,所述系统包括:
[0028]模块M1:引入代码工具库;
[0029]模块M2:使用所述代码工具库改造事件类回调代码;
[0030]模块M3:使用所述代码工具库改造非事件类回调代码;
[0031]模块M4:通过改造后的事件类回调代码和非事件类回调代码,执行控制链式注册方法。
[0032]优选地,所述模块M2包括:
[0033]模块M2.1:确定待改造的事件类回调代码;
[0034]模块M2.2:将事件类回调代码改造为链式调用。
[0035]优选地,所述模块M3包括:
[0036]模块M3.1:确定待改造的非事件类回调代码;
[0037]模块M3.2:调用时,改造非事件类回调代码改造为链式。
[0038]优选地,所述模块M4包括:
[0039]模块M4.1:控制注册方法的调用方向:
[0040]向后调用注册:context.call();
[0041]调用当前注册:context.self();
[0042]向前调用注册:context.prev();
[0043]模块M4.2:控制调用时的逻辑递归。
[0044]优选地,所述系统还包括:调用频率控制防抖和调用频率控制节流;
[0045]其中,注册方法调用频率控制之防抖:
[0046]从代码工具库中引入防抖控制函数,注册调用方法时一并传入,通过防抖控制函数传参来控制调用频率;
[0047]注册方法调用频率控制之节流:
[0048]从代码工具库中引入节流控制函数,注册调用方法时一并传入,通过节流控制函数传参来控制调用频率。
[0049]与现有技术相比,本专利技术具有如下的有益效果:
[0050]1、本专利技术通过Promise类似的链式风格,来改造Promise无法解决的回调代码,当代码逻辑复杂时,便于开发和后续的维护;
[0051]2、本专利技术通过扩展出其他功能,能便于更好的实现开发中的业务逻辑。
附图说明
[0052]通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:
[0053]图1为本专利技术整体流程示意图。
具体实施方式
[0054]下面结合具体实施例对本专利技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本专利技术,但不以任何形式限制本专利技术。应当指出的是,对本领域的普通技术
人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变化和改进。这些都属于本专利技术的保护范围。
[0055]本专利技术实施例提供了一种JavaScript的代码回调方法,使用方式类似ECMAScript6中的Promise语法,链式调用;初始将回调方法A传入,以链式的方式注册后续可能会执行的若干个方法B1,B2

,并在注册的执行方法中注入一上下文对象Context
‑‑
用于控制注册的方法B的执行,从而实现逻辑分层,解决逻辑嵌套的问题;源码仓库地址:https://gitee.com/justfn/callback。参照图1所示,该方法具体包括:
[0056]步骤S1:引入代码工具库。
[0057]import callbackUtil form'callback';
[0058]步骤S2:使用所述代码工具库改造事件类回调代码。
[0059]步骤2.1:确定待改造的事件绑定代码:
[0060]事件绑定代码特点为,事件回调可能多次执行,且执行时机人为控制,不可预测;事件监听方法作为回调代码嵌入,逻辑复杂时不宜扩展;
[0061]举例:页面点击事件:当点击页面时会执行回调(打印输出),多次点击会多次执行回调方法。
[0062]步骤2.2:改造事件回调代码为链式调用;
[0063]以下写法等价于步骤2.1的写法:
[0064]将以上的事件回调方法从嵌套中拆出,使用该代码工具库改造为调用逻辑的链式注册,便于后续扩展。
[0065]步骤S3:使用代码工具库改造非事件类回调代码。
[0066]步骤3.1:确定需改造的非事件类回调代码;
[0067]非事件类回调代码的特点为:执行时存在回调的嵌套,导致不易扩展;
[0068]举例如下:延时执行的方法,将传入的方本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种JavaScript的代码回调方法,其特征在于,包括:步骤S1:引入代码工具库;步骤S2:使用所述代码工具库改造事件类回调代码;步骤S3:使用所述代码工具库改造非事件类回调代码;步骤S4:通过改造后的事件类回调代码和非事件类回调代码,执行控制链式注册方法。2.根据权利要求1所述的JavaScript的代码回调方法,其特征在于,所述步骤S2包括:步骤S2.1:确定待改造的事件类回调代码;步骤S2.2:将事件类回调代码改造为链式调用。3.根据权利要求1所述的JavaScript的代码回调方法,其特征在于,所述步骤S3包括:步骤S3.1:确定待改造的非事件类回调代码;步骤S3.2:调用时,改造非事件类回调代码改造为链式。4.根据权利要求1所述的JavaScript的代码回调方法,其特征在于,所述步骤S4包括:步骤S4.1:控制注册方法的调用方向:向后调用注册:context.call();调用当前注册:context.self();向前调用注册:context.prev();步骤S4.2:控制调用时的逻辑递归。5.根据权利要求1所述的JavaScript的代码回调方法,其特征在于,所述方法还包括:调用频率控制防抖和调用频率控制节流;其中,注册方法调用频率控制之防抖:从代码工具库中引入防抖控制函数,注册调用方法时一并传入,通过防抖控制函数传参来控制调用频率;注册方法调用频率控制之节流:从代码工具库中引入节流控制函数,注册调用方法时一并传入,通过节流控制函数传参来控制调用频率。6.一种Jav...

【专利技术属性】
技术研发人员:范生林
申请(专利权)人:兴业数字金融服务上海股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1