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-promise
faked-promise exports one single function that takes no arguments and returns an array with 3 elements:
- A real promise
- Its
resolve
callback - Its
reject
callback
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')