找回密码
 立即注册
CeraNetworksBGVM服务器主机交流IP归属甄别会员请立即修改密码
查看: 74|回复: 9

(已解决)大佬指教下js异步中如何添加延时

[复制链接]

34

主题

136

回帖

562

积分

高级会员

积分
562
发表于 2022-3-6 21:00:28 | 显示全部楼层 |阅读模式
本帖最后由 qingseyouran 于 2022-3-7 11:44 编辑

3.7号补充
使用for已经解决该问题,settimeout就是不行


谢谢几位坛朋的帮忙,不过还是不行。
只能弄个间接的,
把代码里的downloadPic(pageCurrent)删除,手动点可以下载一页,一直点可以顺序下载,到时再配合个自动化脚本。
有空再研究了。
有大佬的话,帮忙再研究研究。


下面代码下载太快了,过一会就会下载失败,想添加个延时,非码农,不懂js,网上找了半天弄不好,麻烦大佬指教下。

    if(document.location.pathname.indexOf("onlinebook")>0){
        document.body.oncontextmenu = ""
        var pageTotal = 0;
        var picUrl = ""
        //从0开始,为实际页码减一
        var pageCurrent = 0;
        //下载指定页面图片
        function downloadPic(page) {
            picUrl = path + "&pageNo=" + page ;
            fetch(picUrl).then(res => res.blob().then(blob => {
                var a = document.createElement('a');
                var url = window.URL.createObjectURL(blob);
                var filename = page + '.jpg';
                a.href = url;
                a.download = filename;
                a.click();
                window.URL.revokeObjectURL(url);
                if(pageCurrent div.divcenter > div.bq > div.bqmiddle > div.ml").appendChild(downloadBtn);
    }
回复

使用道具 举报

25

主题

7300

回帖

1万

积分

论坛元老

积分
15883
发表于 2022-3-6 21:21:55 | 显示全部楼层
不管啥语言,最烦的就是匿名方法
回复

使用道具 举报

33

主题

302

回帖

1127

积分

金牌会员

积分
1127
发表于 2022-3-6 21:06:26 | 显示全部楼层
不懂
回复

使用道具 举报

24

主题

264

回帖

1168

积分

金牌会员

积分
1168
发表于 2022-3-6 21:08:01 | 显示全部楼层
settimeout 的回调里面再执行下载
回复

使用道具 举报

34

主题

136

回帖

562

积分

高级会员

积分
562
 楼主| 发表于 2022-3-6 21:08:52 | 显示全部楼层

peng123 发表于 2022-3-6 21:06

不懂

略懂c和python,不懂js,看不懂执行逻辑

回复

使用道具 举报

34

主题

136

回帖

562

积分

高级会员

积分
562
 楼主| 发表于 2022-3-6 21:06:00 | 显示全部楼层

VPSMarket 发表于 2022-3-6 21:08

settimeout 的回调里面再执行下载

settimeout弄了好久,不知道加哪里才可以
加最后面那一段里?
回复

使用道具 举报

4

主题

45

回帖

156

积分

注册会员

积分
156
发表于 2022-3-6 21:10:42 | 显示全部楼层
本帖最后由 kapai 于 2022-3-6 21:23 编辑
[ol]
  •    if(document.location.pathname.indexOf("onlinebook")>0){
  •         document.body.oncontextmenu = ""
  •         var pageTotal = 0;
  •         var picUrl = ""
  •         //从0开始,为实际页码减一
  •         var pageCurrent = 0;
  •         //下载指定页面图片
  •         function downloadPic(page) {
  •             picUrl = path + "&pageNo=" + page ;
  •             fetch(picUrl).then(res => res.blob().then(blob => {
  •                 var a = document.createElement('a');
  •                 var url = window.URL.createObjectURL(blob);
  •                 var filename = page + '.jpg';
  •                 a.href = url;
  •                 a.download = filename;
  •                 a.click();
  •                 window.URL.revokeObjectURL(url);
  •                 if(pageCurrent div.divcenter > div.bq > div.bqmiddle > div.ml").appendChild(downloadBtn);
  •     }[/ol]复制代码
  • 回复

    使用道具 举报

    9

    主题

    365

    回帖

    1039

    积分

    金牌会员

    积分
    1039
    发表于 2022-3-6 21:08:00 | 显示全部楼层
    用settimeout把fetch那里包住即可
    回复

    使用道具 举报

    34

    主题

    136

    回帖

    562

    积分

    高级会员

    积分
    562
     楼主| 发表于 2022-3-6 21:20:41 | 显示全部楼层

    kapai 发表于 2022-3-6 21:20

    不行,只能下载第一页

    回复

    使用道具 举报

    34

    主题

    136

    回帖

    562

    积分

    高级会员

    积分
    562
     楼主| 发表于 2022-3-6 21:24:50 | 显示全部楼层

    靓坤 发表于 2022-3-6 21:24

    用settimeout把fetch那里包住即可

    好的。我试下,这个fetch套得太多
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|HS2V主机综合交流论坛

    GMT+8, 2024-6-17 22:12 , Processed in 0.068356 second(s), 3 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2023 Discuz! Team.

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