46 lines
873 B
TypeScript
46 lines
873 B
TypeScript
declare namespace pDefer {
|
|
interface DeferredPromise<ValueType> {
|
|
/**
|
|
Resolves the promise with a value or the result of another promise.
|
|
|
|
@param value - The value to resolve the promise with.
|
|
*/
|
|
resolve(value?: ValueType | PromiseLike<ValueType>): void;
|
|
|
|
/**
|
|
Reject the promise with a provided reason or error.
|
|
|
|
@param reason - The reason or error to reject the promise with.
|
|
*/
|
|
reject(reason?: unknown): void;
|
|
|
|
/**
|
|
The deferred promise.
|
|
*/
|
|
promise: Promise<ValueType>;
|
|
}
|
|
}
|
|
|
|
/**
|
|
Create a deferred promise.
|
|
|
|
@example
|
|
```
|
|
import pDefer = require('p-defer');
|
|
|
|
function delay(ms) {
|
|
const deferred = pDefer();
|
|
setTimeout(deferred.resolve, ms, '🦄');
|
|
return deferred.promise;
|
|
}
|
|
|
|
(async () => {
|
|
console.log(await delay(100));
|
|
//=> '🦄'
|
|
})();
|
|
```
|
|
*/
|
|
declare function pDefer<ValueType>(): pDefer.DeferredPromise<ValueType>;
|
|
|
|
export = pDefer;
|