Funkce časovače založené na slibech jsou podporovány v Node.js 16

Při psaní skriptů pro automatizaci/sestavení Node.js občas potřebuji funkci „uspání“, abych mohl čekat na dokončení jiných úkolů. Není skvělé implementovat „spánky a čekání“, ale někdy není jiná cesta než čekat, až jiný systém dokončí to, co dělá.

Následující úryvek často používám ve skriptu modulu Node.js. 👇

// File: index.mjs

const sleep = (time) => {
  return new Promise((resolve) => {
    setTimeout(resolve, time);
  });
}

// do something
await sleep(5000);
// do something else

Moduly Node.js podporují nejvyšší úroveň v těchto dnech.

Na tomto přístupu není nic špatného, ​​ale velmi mě těší, že funkce časovače založené na slibech jsou dostupné v Node.js 16 prostřednictvím timers/promises teď.

// File: index.mjs

import {
  setTimeout,
} from 'timers/promises';

// do something
await setTimeout(5000);
// do something else

Méně kódu je vždy lepší kód! 👏