[发明专利]基于Promise的链式异步请求处理方法、装置及电子设备有效
申请号: | 201811394545.X | 申请日: | 2018-11-22 |
公开(公告)号: | CN109669720B | 公开(公告)日: | 2022-05-10 |
发明(设计)人: | 姚成昊 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
主分类号: | G06F8/71 | 分类号: | G06F8/71;G06F9/46 |
代理公司: | 北京风雅颂专利代理有限公司 11403 | 代理人: | 鲍胜如 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 promise 链式 异步 请求 处理 方法 装置 电子设备 | ||
1.一种基于Promise的链式异步请求处理方法,其特征在于,包括:
获取所有的基于Promise的异步请求;
通过自定义的commit语法在内存中注册所述基于Promise的异步请求所对应的异步事件,包括:通过设置commit函数接收字符串参数;通过字符串匹配的方式在寻址内存中查找与所述字符串参数相同的运行任务;在与所述字符串参数相同的运行任务中选取符合条件的异步任务进行注册;
调用构建的异步任务管理器,使所述异步任务管理器以并列方式封装在内存中注册的多个异步任务;
将源文件中记载的所述异步事件的ID及序号传递给所述异步任务管理器,在所述任务管理器中采用并行方式执行具有链式关系的异步请求。
2.根据权利要求1所述的方法,其特征在于,所述获取所有的基于Promise的异步请求,包括:
获取当前页面上的显示内容;
判断所述显示内容是否有多个内容源;
若是,则基于多个内容源来确定基于Promise的异步请求。
3.根据权利要求2所述的方法,其特征在于,所述基于多个内容源来确定基于Promise的异步请求,包括:
查找与所述多个内容源对应的多个内容请求;
从多个内容请求中选择基于具有链式异步请求关系的内容请求作为基于Promise的异步请求。
4.根据权利要求1所述的方法,其特征在于,所述在与所述字符串参数相同的运行任务中选取符合条件的异步任务进行注册,包括:
判断与所述字符串参数相同的运行任务是否是异步任务;
若是,则在当前没有调用中的异步任务的情况下执行当前任务,并在执行结束后寻找内存中是否有暂存未调用的任务集合;
若执行结束后寻找内存中存有暂存未调用的任务集合,则调用并重复当前过程,若当前有调用中的任务,则将未调用的任务集合存入异步任务调用集合,等待当前执行任务结束后再调用。
5.根据权利要求4所述的方法,其特征在于,所述在与所述字符串参数相同的运行任务中选取符合条件的异步任务进行注册,还包括:
当所有的异步任务都调用结束后,进一步判断当前调用结束时是否有全局的错误处理与成功处理;
若存在,则将结果返回给相应的处理,否则,直接返回处理结果。
6.根据权利要求1所述的方法,其特征在于,所述调用构建的异步任务管理器,使所述异步任务管理器以并列方式封装在内存中注册的多个异步任务,包括:
在内存中将所需要用到的异步任务先行注册;
通过框架对所述异步任务进行封装,保证在执行过程中的任务符合框架内Promise异步规范的格式;
在所述异步任务在框架初始化时完成注册。
7.根据权利要求5所述的方法,其特征在于,所述调用构建的异步任务管理器,使所述异步任务管理器以并列方式封装在内存中注册的多个异步任务,还包括:
在所述异步任务管理器被调用过程中,接收调用异步任务的名称、顺序、状态、是否并发信息;
动态根据当前的执行状态来决策是执行下一个任务、或者返回结果。
8.根据权利要求1所述的方法,其特征在于,所述在所述任务管理器中采用并行方式执行具有链式关系的异步请求,包括:
通过commit语法同步注册所有要执行的异步事件;
在所述任务管理器的框架内部设置用于执行每个异步事件的异步事件执行器,所述异步事件执行器根据异步事件的状态执行Promise的回调。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811394545.X/1.html,转载请声明来源钻瓜专利网。