JavaScript promises require that you call reject
or resolve
inside the
closure of the created promise.
For example:
const promise = new Promise((resolve, reject) => {
// We have to call resolve or reject here, inside the closure
});
// We can't resolve the promise here, outside of the closure
This package lets you create an open promise. This is a normal JavaScript
Promise, but with its resolve
and reject
callbacks set as attributes on the
promise itself.
This lets you resolve or reject the promise outside of its closure.
For example:
import { getOpenPromise } from 'openpromise';
const promise = getOpenPromise();
const func = setTimeout(() => promise.resolve(), 1000);
return promise;