超时链接方法

时间:2018-11-09 11:05:52

标签: javascript timeout settimeout

所以我有一个关于链接超时的问题。我在这里有2种方法,我在决定使用什么方法。方法1绝对干净得多,但是我不确定它的准确性是否比其他方法差或较慢?

方法1:

setTimeout(() => {

}, 1 * 60000);

setTimeout(() => {

}, 2 * 60000);

setTimeout(() => {

}, 3 * 60000);

方法2:

setTimeout(() => {
    setTimeout(() => {
        setTimeout(() => {

        }, 1 * 60000);
    }, 1 * 60000);
}, 1 * 60000);

2 个答案:

答案 0 :(得分:0)

我的测试表明方法2更快。我重复了大约10次测试。我使用了Chrome Performance Dev Tool。

enter image description here enter image description here

我使用了以下代码:

function runFirst() {
  setTimeout(() => {
    console.log(1);
  }, 1000);

  setTimeout(() => {
    console.log(2);
  }, 2 * 1000);
}

function runSecond() {
  setTimeout(() => {
    console.log(3);

    setTimeout(() => {
      console.log(4);
    }, 1000);
  }, 1000);
}

但是,这些差异确实很小。我建议使用可读性更好的代码(方法1)。

答案 1 :(得分:0)

方法2更快。这是我测试过的代码:Benchmark

// function1
function func1() {
  setTimeout(() => { }, 1 * 60000);          
  setTimeout(() => { }, 2 * 60000);  
  setTimeout(() => { }, 3 * 60000);
  return 'done'
}

func1()

// function2
function func2() {
  setTimeout(() => {
    setTimeout(() => {
        setTimeout(() => { }, 1 * 60000);
    }, 1 * 60000);
  }, 1 * 60000);
  return 'done';
}

func2()

Hereresults