Package Exports
- fast-defer
- fast-defer/dist/index.js
- fast-defer/dist/index.mjs
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (fast-defer) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
🏃
Fast Defer
Fast Defer
is a fast and minimal deferred implementation for javascript.
Table of Contents
Installing
Node
npm install fast-defer # or yarn add fast-defer
const { deferred } = require('fast-defer');
import { deferred } from 'fast-defer';
Browser
<script
crossorigin
src="https://cdn.jsdelivr.net/npm/fast-defer@latest/dist/index.umd.js"
></script>
const { deferred } = window.fastDefer;
Url Import
import { deferred } from 'https://cdn.skypack.dev/fast-defer@latest';
Getting Started
A deferred is nothing more than a promise with .resolve()
and a .reject()
method. You
can use it to create a promise that will be resolved or rejected at some point in the
future and, probably, in another scope.
import { deferred, isDeferred } from 'fast-defer';
const waitingSomething = deferred();
waitingSomething.then((val) => {
console.log('Resolved');
});
waitingSomething.catch((error) => {
console.log('Rejected');
});
// Other file, function or etc
someCallback((response, error) => {
if (error) {
waitingSomething.reject(error);
} else {
waitingSomething.resolve(response);
}
});
Browser Compatibility
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | Node.js | Deno | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Promise() constructor | 32 | 12 | 29* | X | 19 | 8 | 0.12 | 1.0 | 4.4.3 | 32 | 29* | 19 | 8* | 2.0 |
Symbol() constructor | 38 | 12 | 36 | X | 25 | 9 | 0.12 | 1.0 | 38 | 38 | 36 | 25 | 9 | 3.0 |
License
Licensed under the MIT. See LICENSE
for more informations.