Delay a promise a specified amount of time
JavaScript
Clone or download
Latest commit 2e202e5 May 26, 2018
Permalink
Failed to load latest commit information.
.editorconfig Require Node.js 6 May 25, 2018
.gitattributes Require Node.js 6 May 25, 2018
.gitignore Require Node.js 6 May 25, 2018
.npmrc Require Node.js 6 May 25, 2018
.travis.yml Require Node.js 6 May 25, 2018
index.js Require Node.js 6 May 25, 2018
license Require Node.js 6 May 25, 2018
package.json 3.0.0 May 25, 2018
readme.md Require Node.js 6 May 25, 2018
test.js Require Node.js 6 May 25, 2018

readme.md

delay Build Status

Delay a promise a specified amount of time

Install

$ npm install delay

Usage

const delay = require('delay');

(async () => {
	bar();

	await delay(100);

	// Executed 100 milliseconds later
	baz();
})();

Advanced usage

const delay = require('delay');

delay(100, 'a result')
	.then(result => {
		// Executed after 100 milliseconds
		// result === 'a result';
	});

// There's also `delay.reject()` which optionally accepts a value and rejects it `ms` later
delay.reject(100, 'foo'))
	.then(x => blah()) // Never executed
	.catch(err => {
		// Executed 100 milliseconds later
		// err === 'foo'
	});

// You can settle the delay by calling `.clear()`
(async () => {
	const delayedPromise = delay(1000, 'done!');

	setTimeout(() => {
		delayedPromise.clear();
	}, 500);

	const result = await delayedPromise;
	// 500 milliseconds later
	// result === 'done!'
})();

API

delay(ms, [value])

Create a promise which resolves after the specified ms. Optionally pass a value to resolve.

delay.reject(ms, [value])

Create a promise which rejects after the specified ms. Optionally pass a value to reject.

ms

Type: number

Milliseconds to delay the promise.

value

Type: any

Value to resolve or reject in the returned promise.

delay#clear()

Clears the delay and settles the promise.

Related

  • delay-cli - CLI for this module
  • p-cancelable - Create a promise that can be canceled
  • p-min-delay - Delay a promise a minimum 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…

License

MIT © Sindre Sorhus