Async & Promises

Cancellable Delay

easyJS SpecificJS / TS3 tests

Problem Statement

Implement `cancellableDelay(ms)` that returns an object `{ promise, cancel }`. The promise resolves after `ms` milliseconds, but if `cancel()` is invoked before it settles, the promise immediately rejects with an `'Cancelled'` error and clears the timer.

Examples

Example 1:
const { promise, cancel } = cancellableDelay(100);
cancel();
try { await promise; } catch (e) { console.log(e.message); } // 'Cancelled'
JavaScript & TypeScript starter code included
Run this as a live interview

Practice solo

3 test cases. No second person needed.

Get new interview exercises

Practice problems and review drills, sent when we publish new ones. No spam.

Unsubscribe anytime. We never share your address.