Lua语言的异步处理方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:30558639 阅读:22 留言:0更新日期:2021-10-30 13:41
本申请涉及一种Lua语言的异步处理方法、装置、计算机设备和存储介质。所述方法包括:主线程获取业务数据中产生的异步请求;所述主线程根据所述异步请求启动协程,并由所述协程将所述业务数据上传至服务器,并通过所述协程接收所述服务器返回的对所述业务数据的处理结果;所述主线程调用封装的异步回调函数从所述协程中回调所述处理结果,并根据所述处理结果更新所述业务数据。上述操作实现了在业务需要进行异步处理时,通过协程处理异步操作,主线程调用异步操作的处理结果,主线程不会陷入臃肿的回调中,降低了维护成本,并且提升了整体代码的可读性,提高了业务开发效率,精简代码文件大小,降低了运行中的bug率。降低了运行中的bug率。降低了运行中的bug率。

【技术实现步骤摘要】
Lua语言的异步处理方法、装置、计算机设备和存储介质
[0001]本申请要求于2020年10月30日提交中国专利局、申请号2020111920281,专利技术名称为“Lua语言的异步处理方法、装置、计算机设备和存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。


[0002]本申请涉及互联网
,特别是涉及一种Lua语言的异步处理方法、装置、计算机设备和存储介质。

技术介绍

[0003]Lua语言是一个小巧的脚本语言,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译和运行。
[0004]随着互联网程序技术的发展,出现了异步处理技术,异步处理是按照不同步的方式进行程序处理,传统的异步处理方式有回调、事件监听,都是将回调方法索引传入异步处理中,当异步处理结束后,调用传入的回调方法。
[0005]然而,传统技术中,针对Lua语言的异步处理方法没有广泛的实现,而且在多个异步回调串联时,代码会陷入臃肿回调代码中,增加了后期维护成本。

技术实现思路

[0006]基于此,有必要针对上述技术问题,提供一种能够降低维护成本的Lua语言的异步处理方法、装置、计算机设备和存储介质。
[0007]一种Lua语言的异步处理方法,所述方法包括:
[0008]主线程获取业务数据中产生的异步请求;
[0009]所述主线程根据所述异步请求启动协程,并由所述协程将所述业务数据上传至服务器,并通过所述协程接收所述服务器返回的对所述业务数据的处理结果;
[0010]所述主线程调用封装的异步回调函数从所述协程中回调所述处理结果,并根据所述处理结果更新所述业务数据。
[0011]在其中一个实施例中,所述封装的异步回调函数采用帧回调函数,所述帧回调函数中包含帧循环;
[0012]所述主线程调用封装的异步回调函数从所述协程中回调所述处理结果,包括:
[0013]所述主线程调用所述帧回调函数,利用所述帧回调函数中的所述帧循环检查promise状态,根据检测的所述promise状态从所述协程中回调所述处理结果。
[0014]在其中一个实施例中,所述利用所述帧回调函数中的所述帧循环检查promise状态,根据检测的所述promise状态从所述协程中回调所述处理结果,包括:
[0015]检查promise状态;
[0016]调用promise链式回调;
[0017]当所述promise状态为完成状态时,调用所述promise链式回调,将异步操作的处理结果作为参数进行传递;
[0018]当所述promise状态为拒绝状态时,调用所述promise链式回调,将异步操作产生的错误作为参数进行传递。
[0019]在其中一个实施例中,所述方法还包括:
[0020]在将异步操作产生的错误作为参数进行传递的情况下,删除所述异步操作中被取消的异步错误。
[0021]在其中一个实施例中,所述方法还包括;
[0022]在所述协程向所述服务器发送请求后,暂停所述协程,在所述服务器返回的对所述业务数据的处理结果之后,继续所述协程。
[0023]在其中一个实施例中,所述在所述协程向所述服务器发送请求后,暂停所述协程,包括:
[0024]在所述协程向所述服务器发送请求后,通过暂停异步逻辑关键字,暂停所述协程。
[0025]在其中一个实施例中,所述方法还包括:
[0026]在检测到主动中断异步操作的情况下,中断所述协程,并中断所述协程所有调用堆栈的协程。
[0027]一种Lua语言的异步处理装置,所述装置包括:
[0028]请求获取模块,用于主线程获取业务数据中产生的异步请求;
[0029]启动模块,用于所述主线程根据所述异步请求启动协程,并由协程将所述业务数据上传至服务器;
[0030]接收模块,用于所述协程接收所述服务器返回的对所述业务数据的处理结果;
[0031]更新模块,用于所述主线程调用封装的异步回调函数从所述协程中回调所述处理结果,并根据所述处理结果更新所述业务数据。
[0032]一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0033]主线程获取业务数据中产生的异步请求;
[0034]所述主线程根据所述异步请求启动协程,并由协程将所述业务数据上传至服务器;并通过所述协程接收所述服务器返回的对所述业务数据的处理结果;
[0035]所述主线程调用封装的异步回调函数从所述协程中回调所述处理结果,并根据所述处理结果更新所述业务数据。
[0036]一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
[0037]主线程获取业务数据中产生的异步请求;
[0038]所述主线程根据所述异步请求启动协程,并由协程将所述业务数据上传至服务器,并通过所述协程接收所述服务器返回的对所述业务数据的处理结果;
[0039]所述主线程调用封装的异步回调函数从所述协程中回调所述处理结果,并根据所述处理结果更新所述业务数据。
[0040]上述Lua语言的异步处理方法、装置、计算机设备和存储介质,通过主线程获取到业务数据中产生的异步请求,并根据该请求启动协程,同时由协程将业务数据上传至服务
器,服务器端对上传的业务数据进行处理,处理结束后,由协程接收服务器返回的对业务数据的处理结果,同时主线程调用封装的异步回调函数从协程中回调处理结果,并根据处理结果更新业务数据,业务数据更新后即可根据更新了的业务数据更新相应的业务,该方法实现了在业务需要进行异步处理时,通过协程处理异步操作,主线程调用异步操作的处理结果,主线程不会陷入臃肿的回调中,降低了维护成本,并且提升了整体代码的可读性,提高了业务开发效率,精简代码文件大小,降低了运行中的bug率。
附图说明
[0041]图1为一个实施例中Lua语言的异步处理方法的应用环境图;
[0042]图2为一个实施例中Lua语言的异步处理方法的流程示意图;
[0043]图3为一个实施例中Lua语言的异步处理的逻辑流程示意图;
[0044]图4为一个实施例中传统回调处理方式的示意图;
[0045]图5为一个实施例中promise处理方式的示意图;
[0046]图6为一个实施例中未使用promise处理的流程示意图;
[0047]图7为一个实施例中使用promise处理的流程示意图;
[0048]图8为一个实施例中Lua语言的异步处理装置的结构框图;
[0049]图9为一个实施例中计算机设备的内部结构图。
具体实施方式
[0050]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Lua语言的异步处理方法,其特征在于,所述方法包括:主线程获取业务数据中产生的异步请求;所述主线程根据所述异步请求启动协程,并由所述协程将所述业务数据上传至服务器,并通过所述协程接收所述服务器返回的对所述业务数据的处理结果;所述主线程调用封装的异步回调函数从所述协程中回调所述处理结果,并根据所述处理结果更新所述业务数据。2.根据权利要求1所述的方法,其特征在于,所述封装的异步回调函数采用帧回调函数,所述帧回调函数中包含帧循环;所述主线程调用封装的异步回调函数从所述协程中回调所述处理结果,包括:所述主线程调用所述帧回调函数,利用所述帧回调函数中的所述帧循环检查promise状态,根据检测的所述promise状态从所述协程中回调所述处理结果。3.根据权利要求2所述的方法,其特征在于,所述利用所述帧回调函数中的所述帧循环检查promise状态,根据检测的所述promise状态从所述协程中回调所述处理结果,包括:检查promise状态;调用promise链式回调;当所述promise状态为完成状态时,调用所述promise链式回调,将异步操作的处理结果作为参数进行传递;当所述promise状态为拒绝状态时,调用所述promise链式回调,将异步操作产生的错误作为参数进行传递。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:在将异步操作产生的错误作为参数进行传递的情况下,删除所述...

【专利技术属性】
技术研发人员:魏巍
申请(专利权)人:深圳市九九互动科技有限公司
类型:发明
国别省市:

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

1