同步Javascript的示例

时间:2017-09-07 05:02:13

标签: javascript

我想要一个同步javascript的例子。

假设我有三个功能

fun1();
fun2();
fun3();

他们都记录了一些数据。但我希望第二个函数fun2()暂停脚本5秒钟然后继续。

执行setTimeout无法正常工作。

2 个答案:

答案 0 :(得分:0)

Javascript是单线程语言,因此默认情况下,所有任务都是同步的。因此func3将在func2之后调用。

但如果您在func2setTimeoutXHR内有任何异步任务,则序列将会中断。

在这种情况下,您有两个选项,即CallbackPromises

function func1(){
  var num = 0;
  for(var i = 0; i< 1000; i++){
    num += i;
  }
  console.log('func1: ', num);
}

function func2(){
  var num = 0;
  for(var i = 0; i< 1000000; i++){
    num += i;
  }
  console.log('func2: ', num);
}

function func3(){
  var num = 0;
  for(var i = 0; i< 10000; i++){
    num += i;
  }
  console.log('func3: ', num);
}

func1();
func2();
func3();

答案 1 :(得分:0)

Javascript没有办法避免阻止事件循环。因此,编写一个故意阻塞循环给定时间的函数是非常不自然的。

话虽如此,只有当你保证永远不会将它用于演示以外的任何事情时,你可以这样做:

"use strict"

var object = {
    odd: 'a',
    even: 'b',
    odd: 'c',
    even: 'd'
};


Object.keys(object).forEach(prop => console.log(`${prop} - ${object[prop]}`));