npm.io
1.0.4 • Published 3 years ago

@h2ml/fetchdelay

Licence
MIT
Version
1.0.4
Deps
2
Size
5 kB
Vulns
0
Weekly
0

About

The @h2ml/fetchdelay library provides a simple function which wraps the native fetch() method, allowing for control over when the returned Promise resolves or rejects.

Quick Start Guide

The fetchDelay Function

The fetchDelay function is invoked by providing a url and options, this will return a Promise, which will not resolve until after the duration specified by options.minDelay and will reject if the internal fetch() call does not resolve before the duration specified by options.maxDelay.

import { fetchDelay } from '@h2ml/fetchdelay';

(async () => {
	try {
		// This will resolve after a minimum of 3 seconds, 
		// and will reject after 5 seconds if the resource does not load.
		const res1 = await fetchDelay('https://ipapi.co/json', {
			minDelay: 3000,
			maxDelay: 5000
		});
		const json1 = await res1.json();
		console.log(json1);

		// This will reject, as the requested resource 
		// will not resolve until after 6 seconds.
		const res2 = await fetchDelay('https://httpbin.org/delay/6', {
			minDelay: 3000,
			maxDelay: 5000
		});
		const json2 = await res2.json(); // This won't get called.
		console.log(json)2;              // Neither will this.
	} catch (err) {
		// Catch-all rejections.
		console.dir(err);
	}
})();

@h2ml/fetchreplace

Version: 1.0.3
Author: Jack Notman

@h2ml/fetchreplace.fetchDelay ⇒ Promise.<Response> | Error

The fetchDelay function.

Kind: static constant of @h2ml/fetchreplace

Param Type Default Description
url String The url to fetch.
options Object fetchDelay Configuration options.
[options.minDelay] Number 1000 The minimum delay before the Promise resolves.
[options.maxDelay] Number 3000 The maximum amount of time before the Promise rejects.
[options.fetchOptions] Object {} The configuration options to pass to fetch().

Keywords