1.16.1 • Published 2 years ago
react-suspense-async-effect v1.16.1
react-suspense-async-effect
Asynchronous, feels synchronous.
A library to perform asynchronous effects in React following the Suspense API principles providing asynchronous curried functions with a synchronous feel.
Installation
npm install --save react-suspense-async-effect
Install peer dependencies:
npm install --save react react-dom
Usage
// Example.js
import React from "react";
import { useAsyncEffect, asyncEffect } from "react-suspense-async-effect";
// Create a promise factory.
const promiseFactory = (param1, param2, param3) =>
new Promise((resolve) => {
setTimeout(resolve, 3000, { param1, param2, param3 });
});
// Preload the asynchronous effect (Render-as-you-fetch).
const preloadedAsyncEffect = asyncEffect(promiseFactory)("param1 value")(
"param2 value",
"param3 value"
);
function Example() {
// Use the asynchronous effect.
// If the asynchronous data is available at this point,
// render the component, otherwise suspend.
const [data] = useAsyncEffect(preloadedAsyncEffect);
return (
<div>
<pre>
<code>{JSON.stringify(data, void 0, 4)}</code>
</pre>
</div>
);
}
export default Example;
// App.js
import React, { Suspense } from "react";
import Example from "./Example";
function App() {
return (
<div>
<Suspense fallback="Loading...">
<Example />
</Suspense>
</div>
);
}
export default App;
License
MIT © Anton Bagdatyev (Tonix)
1.15.0
2 years ago
1.16.1
2 years ago
1.16.0
2 years ago
1.14.0
3 years ago
1.13.0
3 years ago
1.12.0
3 years ago
1.11.1
4 years ago
1.11.0
4 years ago
1.10.0
4 years ago
1.9.1
4 years ago
1.9.0
4 years ago
1.8.0
4 years ago
1.7.0
4 years ago
1.6.0
4 years ago
1.2.0
4 years ago
1.5.0
4 years ago
1.4.0
4 years ago
1.3.0
4 years ago
1.1.0
4 years ago
1.0.0
4 years ago