setTimeout如何在这里工作

时间:2016-03-12 09:04:30

标签: javascript settimeout

function A() {
    // do somthing
    console.log("A");
    setTimeout(func1, 0);
    B();
}

function func1() {
    console.log("func1");
}

function B() {
    console.log("B");
    setTimeout(func2, 0);
    C();
}

function func2() {
    console.log("func2");
}

function C() {
    // do somthing
    console.log("C");
}
A();
// output: 
//  A
//  B
//  C
//  func1
// func2

但我将func1时间更改为1,func2时间更改为2.持续时间仍然持续1ms。但输出已更改。

function A() {
    // do somthing
    console.log("A");
    setTimeout(func1, 1);
    B();
}

function func1() {
    console.log("func1");
}

function B() {
    console.log("B");
    setTimeout(func2, 2);
    C();
}

function func2() {
    console.log("func2");
}

function C() {
    // do somthing
    console.log("C");
}
A();
// output: 
//  A
//  B
//  C
//  func2
// func1

然后我尝试使用setTimeout(func1,1001),setTimeout(func2,1002)。但是" func2"仍然会在" func1"之前输出。看起来setTimeout(func1,0),setTimeout(func2,1)似乎是一个。但两个定时器设置之间的持续时间总是1ms。我想要找出导致输出不同的原因。

0 个答案:

没有答案