A simple react helper snippet to handle promises as a react synchronous hook with mininmal amount of re-renders
npm install react-sync-promiseA simple react helper snippet to handle promises as a react synchronous hook with mininmal amount of re-renders
``tsx
import React, { FC, useMemo } from 'react';
import { usePromise, isPending, isRejected, isResolved, ifUnresolved, ifNotRejected, usePromiseState } from 'react-sync-promise';
export const PrequelsSurprise: FC = () => {
const memoizedPromise = useMemo(() => Promise.resolve('Execute order 66'), []);
const syncPromise = usePromise(memoizedPromise);
const [secondSyncPromise, setSecondSyncPromise] = usePromiseState(memoizedPromise);
return (
<>
{JSON: ${JSON.stringify(secondSyncPromise)}}
{JSON: ${JSON.stringify(syncPromise)}}
{isPending: ${String(isPending(syncPromise))}}
{isRejected: ${String(isRejected(syncPromise))}}
{isResolved: ${String(isResolved(syncPromise))}}
{ifUnresolved: ${String(ifUnresolved(syncPromise, 'Hello There'))}}
{ifNotRejected: ${String(ifNotRejected(syncPromise, 'General kenobi'))}}
APACHE