2016-10-13 00:16:48 点击量:12 标签: 收藏本文
做了一个试验,测试能否在另外的setTimeout中中断其他代码的执行。结果表明,是不可能的,Actionscript会按顺序,逐个逐个的执行。
- private var index:int;
- private var stop:Boolean = false;
- public function EffectTest()
- {
- setTimeout(run, 200);
- setTimeout( function():void
- {
- trace("try to terminate running");
- stop = true;
- }, 500);
- setTimeout( function():void
- {
- trace("index is", index);
- }, 600);
- }
- protected function run(): void
- {
- //this loop needs 1.3s to finish
- for (var i:int = 0; i < 10000000; i++)
- {
- if (stop)
- {
- iindex = i;
- trace("running has been terminated");
- return;
- }
- var a:Number = Math.sqrt(i);
- }
- iindex = i;
- trace("finish running");
- }
如果第二个setTimeout能中止的话,应该输出running has been terminated
但实际运行结果,这部分是没有执行的。run函数还是好好的完全被执行完。
最终输出:
finish running
try to terminate running
index is 10000000
我们是一家提供综合软件外包与弱电工程服务的技术公司。
业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。
公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室