Метод цепочки ожидания - PullRequest
       7

Метод цепочки ожидания

0 голосов
/ 09 ноября 2018

Итак, у меня есть вопрос относительно тайм-аутов цепочки. У меня есть 2 метода здесь, из которых я решаю, что использовать. Метод 1 определенно намного чище, однако я не уверен, что он менее точен или медленнее с точки зрения производительности, чем другой?

Метод 1:

setTimeout(() => {

}, 1 * 60000);

setTimeout(() => {

}, 2 * 60000);

setTimeout(() => {

}, 3 * 60000);

Метод 2:

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

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

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Способ 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()

Здесь являются результатами

0 голосов
/ 09 ноября 2018

Мои тесты показывают, что метод 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).

...