Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including p-min-delay with all npm packages installed. Try it out:

var pMinDelay = require("p-min-delay")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

p-min-delay v3.1.0

Delay a promise a minimum amount of time

p-min-delay Build Status

Delay a promise a minimum amount of time

While the 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.


$ npm install p-min-delay


const pMinDelay = require('p-min-delay');

(async () => {
    const value = await pMinDelay(somePromise, 1000);
    // Executed after minimum 1 second even if `somePromise` fulfills before that


pMinDelay(promise, minimumDelay, [options])


Type: Promise

Promise to delay.


Type: number

Time in milliseconds.


Type: Object


Type: boolean
Default: true

Delay the rejection.

Turn this off if you want a rejected promise to fail fast.


  • delay - Delay a promise a specified amount of time
  • p-immediate - Returns a promise resolved in the next event loop - think setImmediate()
  • p-timeout - Timeout a promise after a specified amount of time
  • More…


MIT © Sindre Sorhus


RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free