Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sindresorhus/p-min-delay
Delay a promise a minimum amount of time
https://github.com/sindresorhus/p-min-delay
Last synced: about 1 month ago
JSON representation
Delay a promise a minimum amount of time
- Host: GitHub
- URL: https://github.com/sindresorhus/p-min-delay
- Owner: sindresorhus
- License: mit
- Created: 2016-11-20T12:48:35.000Z (almost 8 years ago)
- Default Branch: main
- Last Pushed: 2023-04-17T17:35:12.000Z (over 1 year ago)
- Last Synced: 2024-04-14T09:55:30.153Z (7 months ago)
- Language: JavaScript
- Size: 17.6 KB
- Stars: 162
- Watchers: 7
- Forks: 23
- Open Issues: 2
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
- promise-fun - p-min-delay
README
# p-min-delay
> Delay a promise a minimum amount of time
While the [`delay`](https://github.com/sindresorhus/delay) module delays the promise a specified amount of time and then resolves it, this module ensures the promise resolves after the specified amount of time.
Useful when you have a promise that may settle immediately or may take some time, and you want to ensure it doesn't settle too fast. For example, if you want to show a loading indicator for at least 1 second (but longer if needed) to prevent a confusing flash in the UI.
## Install
```sh
npm install p-min-delay
```## Usage
```js
import pMinDelay from 'p-min-delay';const value = await pMinDelay(somePromise, 1000);
// Executed after minimum 1 second even if `somePromise` fulfills before that
```## API
### pMinDelay(promise, minimumDelay, options?)
#### promise
Type: `Promise`
Promise to delay.
#### minimumDelay
Type: `number`
Time in milliseconds.
#### options
Type: `Object`
##### delayRejection
Type: `boolean`\
Default: `true`Delay the rejection.
Turn this off if you want a rejected promise to fail fast.
## Related
- [delay](https://github.com/sindresorhus/delay) - Delay a promise a specified amount of time
- [p-immediate](https://github.com/sindresorhus/p-immediate) - Returns a promise resolved in the next event loop - think `setImmediate()`
- [p-timeout](https://github.com/sindresorhus/p-timeout) - Timeout a promise after a specified amount of time
- [More…](https://github.com/sindresorhus/promise-fun)