Just like a Promise but you can manually resolve or reject it
npm i @hazae41/future
- 100% TypeScript and ESM
- No external dependencies
- Unit-tested
import { Future } from "@hazae41/future"
const future = new Future<void>()
const t1 = setTimeout(() => future.resolve(), 1000)
const t2 = setTimeout(() => future.reject(), 2000)
try {
await future.promise
} finally {
clearTimeout(t1)
clearTimeout(t2)
}