While coding, there are often times when you need to wait for a specific duration.
For example, during tests, animations, etc…
A killer utility is needed!
sleep
Create your own utility using Promise.
const sleep = (ms: number) => {
return new Promise((resolve) => setTimeout(resolve, ms));
};tsIt uses setTimeout to wait for the given time (ms) and then calls resolve to fulfill the Promise.
lodash.delay
Since Promise is an ES5 syntax, it cannot operate in legacy browsers (IE) without additional help.
In such cases, it’s good to use a proven utility library like lodash.
yarn add lodash-es
yarn add -D @types/lodash-esshellIn modern environments, use lodash-es for tree shaking.
import { delay } from 'lodash-es';
delay(() => {
console.log('sleep end');
}, 100);jsIf you look at the original code, it internally uses setTimeout as well, so there is no performance difference.