2019-04-03 05:19:13 +00:00
|
|
|
declare namespace pDefer {
|
|
|
|
interface DeferredPromise<ValueType> {
|
|
|
|
/**
|
|
|
|
Resolves the promise with a value or the result of another promise.
|
2019-03-17 12:21:07 +00:00
|
|
|
|
2019-04-03 05:19:13 +00:00
|
|
|
@param value - The value to resolve the promise with.
|
|
|
|
*/
|
|
|
|
resolve(value?: ValueType | PromiseLike<ValueType>): void;
|
2019-03-17 12:21:07 +00:00
|
|
|
|
2019-04-03 05:19:13 +00:00
|
|
|
/**
|
|
|
|
Reject the promise with a provided reason or error.
|
2019-03-17 12:21:07 +00:00
|
|
|
|
2019-04-03 05:19:13 +00:00
|
|
|
@param reason - The reason or error to reject the promise with.
|
|
|
|
*/
|
|
|
|
reject(reason?: unknown): void;
|
|
|
|
|
|
|
|
/**
|
|
|
|
The deferred promise.
|
|
|
|
*/
|
|
|
|
promise: Promise<ValueType>;
|
|
|
|
}
|
|
|
|
}
|
2019-03-17 12:21:07 +00:00
|
|
|
|
2019-04-03 05:19:13 +00:00
|
|
|
declare const pDefer: {
|
2019-03-17 12:21:07 +00:00
|
|
|
/**
|
2019-04-03 05:19:13 +00:00
|
|
|
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));
|
|
|
|
//=> '🦄'
|
|
|
|
})();
|
|
|
|
```
|
2019-03-17 12:21:07 +00:00
|
|
|
*/
|
2019-06-07 07:44:51 +00:00
|
|
|
<ValueType>(): pDefer.DeferredPromise<ValueType>;
|
2019-04-03 05:19:13 +00:00
|
|
|
|
|
|
|
// TODO: Remove this for the next major release, refactor the whole definition to:
|
2019-06-07 07:44:51 +00:00
|
|
|
// declare function pDefer<ValueType>(): pDefer.DeferredPromise<
|
2019-04-03 05:19:13 +00:00
|
|
|
// ValueType
|
|
|
|
// >;
|
|
|
|
// export = pDefer;
|
|
|
|
default: typeof pDefer;
|
|
|
|
};
|
2019-03-17 12:21:07 +00:00
|
|
|
|
2019-04-03 05:19:13 +00:00
|
|
|
export = pDefer;
|