李恒道 发表于 2022-5-11 09:35:38

[脚本实战篇]逻辑合并

# 前言
我们之前主要精力是放在了单个pdf和视频的跑通情况
目前我们完成了
1.自动执行dialog
2.监听并且自动关闭dialog
那我们要把所有的衔接到一起
# 开始
之前知道我们获取了所有dom的idlist直接传递给了AutoExecteChaprterMission函数
![图片.png](data/attachment/forum/202205/11/093011bmnaxhs8mwwsswpi.png)
而这个函数是一个async函数
在await函数的时候会阻塞,我们先通过阻塞得到一个章节的所有小节内容
然后在循环小节内容,await每个小节等待结束
![图片.png](data/attachment/forum/202205/11/093030udryw5vfllvtwjzv.png)
这样的话小节ExecteContentMission也要返回一个promise让其await
```javascript
async function ExecteContentMission(Contet){
    return new Promise(async (resolve,reject)=>{
      await OpenOriginDialog(Contet)
      //执行相关内容
      resolve()
    })
}
```
我们默认之前把视频的监听之类的全部丢给OpenOriginDialog函数里了
这样的话我们直接在内部也将其改造成promise
然后在ExecteContentMission里进行await
如果OpenOriginDialog等待await结束完毕后
视频和pdf一定是刷完的了
然后直接resolve即可
这里没有直接返回OpenOriginDialog的promise是为了方便以后出现问题再进行二次封装
而OpenOriginDialog的任务之前也叙述的差不多了
在接收到lhd_close消息后直接解除监听,然后删除元素,最后我们直接resolve函数
让await继续往下走即可
![图片.png](data/attachment/forum/202205/11/093357o7cafqc7laaba8z0.png)
那我们就完成了整个脚本的逻辑了
根据测试目前基本已经完全跑通
出现问题再哪里有问题点哪里就好了
后续会提供代码(为了防止伸手党会阉割一小部分,也算一个小课后作业了!)
# 结语
撒花
页: [1]
查看完整版本: [脚本实战篇]逻辑合并