Create a promise that can be resolved and rejected programatically outside of it
It basically extracts the resolve and reject callbacks so you can call them whenever you need.
Tip
In modern environments, you can directly use Promise.withResolvers()
npm i faked-promisefaked-promise exports one single function that takes no arguments and returns an array with 3 elements:
- A real promise
- Its
resolvecallback - Its
rejectcallback
Meaning you can control exactly when the promise is resolved or rejected:
const fakePromise = require('faked-promise')
const [promise, resolve, reject] = fakePromise()
promise.then(() => {})
resolve('any value')