Array.every()是阻塞的吗?

2014-11-06 09:37:29 +08:00
 Just1n
2889 次点击
所在节点    JavaScript
11 条回复
Arrowing
2014-11-06 09:41:14 +08:00
同步的,不阻塞,个人理解。

alert这个才是阻塞的吧
skydiver
2014-11-06 09:42:29 +08:00
同步的……阻塞是说的IO,没IO哪来阻塞
meteor
2014-11-06 10:03:39 +08:00
Just1n
2014-11-06 10:09:54 +08:00
@Arrowing @skydiver @meteor 对的,口误,就是想表达同步不同步的意思。
yyfearth
2014-11-06 10:37:39 +08:00
当然是同步的了 JS下面还没有parallel循环的支持
JS本身单线程 所以没有IO的部分都是同步执行的 就算用了setTimeout也是执行完了一个才可能开始下一个
yyfearth
2014-11-06 10:38:19 +08:00
如果想做到异步而且是并行循环 那么得用worker来实现了
cxe2v
2014-11-06 11:38:30 +08:00
@Arrowing alert好像不是阻塞的,会直接把后面的执行完
Jaylee
2014-11-06 11:44:10 +08:00
@cxe2v alert是阻塞的
cxe2v
2014-11-06 11:59:20 +08:00
@Jaylee 我也没测试过,就是感觉,那是我错了
alsotang
2014-11-06 12:12:59 +08:00
Arrowing
2014-11-06 13:46:56 +08:00
@cxe2v 我就这个问题做了测试,将以下代码放置html文件跑起来便知

<div id="test" style="width: 50px;height: 50px;background:#000;position: absolute;left: 0; top: 0;">

</div>
<script>
var test = document.getElementById('test');
setInterval(function(){
test.style.left = (parseInt(test.style.left) + 1) + 'px';
test.style.top = (parseInt(test.style.top) + 1) + 'px';
}, 10);

setTimeout(function(){
alert('stop');
}, 1000);
</script>

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/144308

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX