dphelper
Version:
dphelper devtools for developers
99 lines (75 loc) • 2.33 kB
Markdown
Management of timers, delays, and intervals.
| Function | Description | Example |
|----------|-------------|---------|
| `sleep` | Pause execution for milliseconds | `dphelper.timer.sleep(ms)` |
| `percentage` | Calculate time percentage between dates | `dphelper.timer.percentage(start, end)` |
Timer utilities:
- **Sleep** - Async pause/delay
- **Percentage** - Calculate elapsed time percentage
```javascript
// Async delay
await dphelper.timer.sleep(1000);
// Pauses for 1 second
// In async functions
async function delayedAction() {
console.log('Start');
await dphelper.timer.sleep(2000);
console.log('After 2 seconds');
}
// Retry with delay
async function retryWithBackoff(fn, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
return await fn();
} catch (err) {
if (i < maxRetries - 1) {
await dphelper.timer.sleep(1000 * Math.pow(2, i));
}
}
}
}
```
```javascript
// Calculate progress percentage
const start = new Date('2024-01-01');
const end = new Date('2024-12-31');
const now = new Date('2024-06-15');
const progress = dphelper.timer.percentage(start, end);
// Returns percentage of year complete (approximately 50%)
// Countdown timer
const eventStart = new Date('2024-12-25');
const today = new Date();
const percentComplete = dphelper.timer.percentage(today, eventStart);
console.log(`${percentComplete}% until event`);
```
```javascript
// Track operation progress
function trackProgress(startTime, duration) {
const now = Date.now();
const elapsed = now - startTime;
return dphelper.timer.percentage(startTime, startTime + duration);
}
const operationDuration = 10000; // 10 seconds
const start = Date.now();
// In a loop
setInterval(() => {
const progress = trackProgress(start, operationDuration);
console.log(`${progress}% complete`);
if (progress >= 100) clearInterval(this);
}, 500);
```
- **Author:** Dario Passariello
- **Version:** 0.0.2
- **Creation Date:** 20210101
- **Last Modified:** 20260220
- **Environment:** both (browser + Node.js)
---
*Automatically generated document*