Promise with externally controllable resolve and reject. Allows you to create a promise and settle it from outside, useful for complex control flow patterns.
npm install @lowerdeck/programmable-promise@lowerdeck/programmable-promisePromise with externally controllable resolve and reject. Allows you to create a promise and settle it from outside, useful for complex control flow patterns.
``bash`
npm install @lowerdeck/programmable-promise
yarn add @lowerdeck/programmable-promise
bun add @lowerdeck/programmable-promise
pnpm add @lowerdeck/programmable-promise
`typescript
import { ProgrammablePromise } from '@lowerdeck/programmable-promise';
// Create a promise you can control externally
const pp = new ProgrammablePromise
// Pass the promise around
setTimeout(() => {
pp.resolve('Hello!');
}, 1000);
const result = await pp.promise;
console.log(result); // 'Hello!'
// Useful for event-driven flows
class EventHandler {
private completion = new ProgrammablePromise
onComplete() {
return this.completion.promise;
}
handleEvent(event: Event) {
if (event.type === 'done') {
this.completion.resolve();
}
}
}
// Access resolved value without awaiting
const pp2 = new ProgrammablePromise
pp2.resolve(42);
console.log(pp2.value); // 42
``
This project is licensed under the Apache License 2.0.