[发明专利]基于Promise的链式异步请求处理方法、装置及电子设备有效
申请号: | 201811394545.X | 申请日: | 2018-11-22 |
公开(公告)号: | CN109669720B | 公开(公告)日: | 2022-05-10 |
发明(设计)人: | 姚成昊 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
主分类号: | G06F8/71 | 分类号: | G06F8/71;G06F9/46 |
代理公司: | 北京风雅颂专利代理有限公司 11403 | 代理人: | 鲍胜如 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 promise 链式 异步 请求 处理 方法 装置 电子设备 | ||
本发明实施例中提供了一种基于Promise的链式异步请求处理方法、装置及电子设备,属于数据处理技术领域,该方法包括:获取所有的基于Promise的异步请求;通过自定义的commit语法在内存中注册所述基于Promise的异步请求所对应的异步事件;调用构建的异步任务管理器,使所述异步任务管理器以并列方式封装在内存中注册的多个异步任务;将源文件中记载的所述异步事件的ID及序号传递给所述异步任务管理器,在所述任务管理器中采用并行方式执行具有链式关系的异步请求。通过本申请的处理方案,使得异步任务更急利于执行和维护。
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于Promise的链式异步请求处理方法、装置及电子设备。
背景技术
近年来,随着互联网技术的广泛应用,越来越多的用户在计算机、智能设备之类的计算机设备上浏览由诸如HTML之类的标记语言描述的内容的需求不断增加。HTTP(HyperText Transfer Protocol),即超文本传输协议,是一种无状态、单向的协议。一个HTTP请求被发送到服务器,服务器接受请求并进行处理,完成后发回一个响应,在服务器的处理过程中,客户端和服务器需要保持这个HTTP连接。
为了能够适应网页上存在多个HTTP请求,同时提高网页的响应,可以采用HTTP异步请求的方式来进行处理,异步请求可以通过短轮询的方式返回HTTP异步请求响应结果。采用以短轮询方式返回HTTP异步请求响应结果,采用定时向服务器提交新的请求来实现数据的加载,实时效果较差。特别是对于存在多个依赖关系的异步任务,通常多个异步任务之间存在循环依赖关系,即后一个异步任务的执行依赖于前一个异步任务的执行结果。由此导致异步任务的执行效率较慢。
在JavaScript中,代码都是单线程方式执行的。由于JavaScript的这个特性,导致JavaScript的所有网络操作,浏览器事件,都必须是异步执行。异步执行都是通过回调函数实现。有时候可能出现非常多次的回调嵌套,这样就使代码的层级特别深,不利于代码的维护和移植。
发明内容
有鉴于此,本发明实施例提供一种基于Promise的链式异步请求处理方法、装置及电子设备,至少部分解决现有技术中存在的问题。
第一方面,本发明实施例提供了一种基于Promise的链式异步请求处理方法,包括:
获取所有的基于Promise的异步请求;
通过自定义的commit语法在内存中注册所述基于Promise的异步请求所对应的异步事件;
调用构建的异步任务管理器,使所述异步任务管理器以并列方式封装在内存中注册的多个异步任务;
将源文件中记载的所述异步事件的ID及序号传递给所述异步任务管理器,在所述任务管理器中采用并行方式执行具有链式关系的异步请求。
根据本发明实施例的一种具体实现方式,所述获取所有的基于Promise的异步请求,包括:
获取当前页面上的显示内容;
判断所述显示内容是否有多个内容源;
若是,则基于多个内容源来确定基于Promise的异步请求。
根据本发明实施例的一种具体实现方式,所述基于多个内容源来确定基于Promise的异步请求,包括:
查找与所述多个内容源对应的多个内容请求;
从多个内容请求中选择基于具有链式异步请求关系的内容请求作为基于Promise的异步请求。
根据本发明实施例的一种具体实现方式,所述通过自定义的commit语法在内存中注册所述基于Promise的异步请求所对应的异步事件,包括:
通过设置commit函数接收字符串参数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811394545.X/2.html,转载请声明来源钻瓜专利网。