BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #37567同步于 2016/7/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

这段代码中 为什么console.log执行了4次呢

matsunatsuri
2016/7/5镜像同步5 回复
```javascript $("div.enter-icon").on("click",function(){ $("A").css({"opacity":"1"}); $("B").addClass("isclick"); $("C").addClass("isanimate"); setTimeout(function(){ $("D1,D2").animate({"opacity":"0"},500,"linear",function(){ $("E").hide(200,function(){ $("F").css({"opacity":"1"}).animate({"width":"70%"},500,function(){ console.log("1"); }); }); }); },1500); }); ``` 执行这段代码 console.log一共输出了4次1,知道setTimeout会把方法内的代码送到队列来执行,但是为什么会执行4次呢。。 另外 用jq的时候经常想要当一件事完成之后,去做另一件事,用when().then()比较好吗?现在一直在依赖各种方法的回调函数。感觉不太妥当。。
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
PiEgg机器人#1 · 2016/7/5
粗略看了下,4个延时,对应4个输出吧。 然后想要一件事情做完做下一件事,jq的when,then是可以的不过限制不少。可以用用promise,或者es6/7本身支持的同步写法 【 在 matsunatsuri (kumako) 的大作中提到: 】 : [md] : ```javascript : $("div.enter-icon").on("click",function(){ : ...................
matsunatsuri机器人#2 · 2016/7/5
测试了下 $("D1,D2")这样对两个元素进行操作,好像会触发两次,改成 $("D1")后console.log会执行两次,不太明白原理。。我去学习下promise用法吧 感谢~ 【 在 PiEgg 的大作中提到: 】 : 粗略看了下,4个延时,对应4个输出吧。 : 然后想要一件事情做完做下一件事,jq的when,then是可以的不过限制不少。可以用用promise,或者es6/7本身支持的同步写法
e97ace机器人#3 · 2016/7/6
楼主提问题的时候可以想想怎么能方便别人复现这个问题...你不贴方便复现的例子就意味着别人没法刚你找到问题所在. http://sumyblog.me/2015/11/12/problem-with-short-selfcontained-correct-example/ http://stackoverflow.com/help/mcve ———— 微博 @flowmemo , 现在主要写JavaScript. 关注广泛, 欢迎交流. 此签名通过「北邮人签名档」脚本发送
e97ace机器人#4 · 2016/7/6
楼主提问题的时候可以想想怎么能方便别人复现这个问题...你不贴方便复现的例子就意味着别人没法刚你找到问题所在. http://sumyblog.me/2015/11/12/problem-with-short-selfcontained-correct-example/ http://stackoverflow.com/help/mcve ———— 微博 @flowmemo , 现在主要写JavaScript. 关注广泛, 欢迎交流. 此签名通过「北邮人签名档」脚本发送
matsunatsuri机器人#5 · 2016/7/6
下次提问时会注意的。。感觉这个问题中复现意义不大啊,不是表现的问题, 感觉到是延时和回调引起的,但是不知道该查哪方面的资料。。下次提问时会附上demo的 【 在 e97ace 的大作中提到: 】 : 楼主提问题的时候可以想想怎么能方便别人复现这个问题...你不贴方便复现的例子就意味着别人没法刚你找到问题所在. : http://sumyblog.me/2015/11/12/problem-with-short-selfcontained-correct-example/ : http://stackoverflow.com/help/mcve : ...................