上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

[脚本实战篇]逻辑合并

[复制链接]
  • TA的每日心情
    无聊
    2022-4-18 01:37
  • 签到天数: 30 天

    [LV.5]常住居民I

    302

    主题

    2583

    帖子

    2651

    积分

    荣誉开发者

    非物质文化遗产社会摇传承人

    Rank: 10Rank: 10Rank: 10

    积分
    2651

    猫咪币纪念章

    发表于 2022-5-11 09:35:38 | 显示全部楼层 | 阅读模式

    前言

    我们之前主要精力是放在了单个pdf和视频的跑通情况
    目前我们完成了
    1.自动执行dialog
    2.监听并且自动关闭dialog
    那我们要把所有的衔接到一起

    开始

    之前知道我们获取了所有dom的idlist直接传递给了AutoExecteChaprterMission函数
    图片.png
    而这个函数是一个async函数
    在await函数的时候会阻塞,我们先通过阻塞得到一个章节的所有小节内容
    然后在循环小节内容,await每个小节等待结束
    图片.png
    这样的话小节ExecteContentMission也要返回一个promise让其await

    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
    那我们就完成了整个脚本的逻辑了
    根据测试目前基本已经完全跑通
    出现问题再哪里有问题点哪里就好了
    后续会提供代码(为了防止伸手党会阉割一小部分,也算一个小课后作业了!)

    结语

    撒花

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表