@h2ml/fetchdelay
v1.0.4
Published
Wrapper function for fetch() which allows for better control over timing.
Downloads
6
Readme
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(). |