ming159 最近的时间轴更新
ming159
ONLINE

ming159

V2EX 第 545009 号会员,加入于 2021-05-11 11:13:50 +08:00
今日活跃度排名 5990
马上春节了,征集意见.大家走亲戚都带什么?
生活  •  ming159  •  76 天前  •  最后回复来自 lei5566
7
工业数据通信网关程序
  •  1   
    程序员  •  ming159  •  143 天前  •  最后回复来自 ming159
    7
    正在开发一套主要面向工业物联网通信程序
    1984  •  ming159  •  2021-08-18 11:33:42 AM  •  最后回复来自 ming159
    1
    ming159 最近回复了
    8 小时 10 分钟前
    回复了 iceWater10 创建的主题 职场话题 学计算机的你们后悔了吗?
    后悔,应该直接学怎么赚钱
    2 天前
    回复了 UncleBrandy 创建的主题 电影 V 友推荐好看的间谍片、动作片。
    推荐部黑帮英剧吧,但是贼帅 <浴血黑帮>

    fucking shelby !
    2 天前
    回复了 dododada 创建的主题 程序员 遇到想法很多的合作伙伴怎么办
    生气无用 !!!
    处理方法也很简单. 正式开发前, 书面形式做出功能规划,抄送相关领导. 让他正式邮件确认. 哪里不行改哪里. 最后他甩锅的时候. 理直气壮的说: "当时功能设计,是我们共同讨论一致通过的,现在有分歧可以再改,而不是在这里事后诸葛亮"
    确实是异步导致的问题。 但还有其他问题。
    1. post 函数是个异步函数
    2. for 循环是同步。
    3. JS 变量作用域+JS 函数传值都是值传递、
    另外补充一点,**JS 只在一个线程上运行**,异步函数是被放到了任务队列中,等待主线程调用的。

    所以,原先在 for 循环内部的时候。 执行顺序是 先执行完 for 循环。 然后执行 post 函数( post 函数)。所以当 post 函数执行的时候。url 每次都是数组的最后一个值。 你的情况类似如下
    ```
    console.log("1"); // 主线程
    setTimeout(function(){
    console.log("2");
    },0); // 加入到了 任务队列。
    console.log("3");// 主线程
    // 又或者
    for(var i=0;i<5;i++){
    setTimeout(function(){
    console.log("变量 i="+i);
    },0);
    }
    ```
    那么 为什么提取成函数 for 循环内调用就行了。
    在 ES6 之前的,JS 是没有块级作用域变量的,也就是 后来为啥引入 let 的原因。 也就是说,在原来 for 循环内部的时候,post 执行时访问的都是同一个变量 i 。但是提成函数时,变量 i 的值被当做函数参数传入函数内。 那么每次 post 的时候,是从函数参数中获取到的。就不是原先 for 循环中定义的 i 了。

    所以 前面的兄弟提到,可以用 let 代替 var 也能解决你的问题。是因为 let 定义的是块级作用域。 比如你可以测试一下如下程序
    ```
    // var 定义 i
    for(**var** i=0;i<5;i++){
    setTimeout(function(){
    console.log(i);
    },0);
    }
    // let 定义
    for(**let** i=0;i<5;i++){
    setTimeout(function(){
    console.log(i);
    },0);
    }
    ```
    10 天前
    回复了 miaowo 创建的主题 问与答 年纪轻轻患了癌症,关于未来有点迷茫了
    不知道为啥,我脑海中蹦出来的是,癌症之后,出去游玩. 最后钱花光,癌症好了的 新闻

    不是建议去效仿啊. 但有一点就是 要保持 **开心**

    放下恐惧,做点能让自己**开心**的事. 奇迹会发生的
    循环内部改造成函数调用就行了.....
    `
    var allimg = 获取到的图片数组;
    var oldcontent = 原内容;
    for(var i=0; i<allimg.length; i++){
    var url = allimg[i]
    doReplace(url); // 函数调用传值作用域会改变
    }
    function doReplace(url){
    $.post('url', 参数, function(ret) {
    if(ret['code'] == 200) {
    oldcontent = oldcontent.replace(ret['oldimgurl'], ret['newimgurl']);
    }else{
    console.log(错误信息);
    }
    }, 'json');
    }

    `
    10 天前
    回复了 eughplease 创建的主题 问与答 给程序员朋友送什么礼物比较好
    补充一下,纯粹个人极其强烈的偏见.
    1. 首先你跟 前前男友有矛盾 的时候,为啥找他倾诉? 没有同性闺蜜吗?
    2. 你答应人家回国一起玩,中途遇到新的男生就接受了 .说明 你也没那么看重他

    合理怀疑一下: 现在是不是没有"新鲜"男生追你了. 所以想起 他了?

    有一点可以祝福的是, 不管是他,还是 OP,都会遇到自己对的人.
    10 天前
    回复了 eughplease 创建的主题 问与答 给程序员朋友送什么礼物比较好
    看完故事后,觉你还是别送了 🤣🤣🤣 放过好人
    广汉 三星堆
    成都市内 金沙博物馆. 强烈推荐.
    青城山,建议一天 .
    都江堰 可以和成都市内拼 一天. 因为都江堰山上可以爬爬,山后的 西街 也还可以.
    要想系统性了解,可以看 计算机图形 相关书籍.例如 OpenGL
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5446 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 16ms · UTC 08:50 · PVG 16:50 · LAX 01:50 · JFK 04:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.