vigzmv / react-promise-suspense

A React hook for resolving promises with Suspense support. <1kb bundle.
https://npmjs.com/package/react-promise-suspense
MIT License
162 stars 9 forks source link

Custom caching function #16

Open Splact opened 4 years ago

Splact commented 4 years ago

I'm working with threejs and here using usePromise to load an external model it works the first time, but not on successive use of the loader on the same resource. Would be nice to have the ability to assign a function that defines the copy logic, with threejs this can be done with mesh.clone(); for example.

This is how the usePromise could work.

  const data = usePromise(
    fetchJson, [
      'https://pokeapi.co/api/v2/pokemon/ditto/',
      { method: 'GET' },
    ],
    {
      // options object instead of single argument for lifespan
      lifespan: 1000,
      onCache: (originalResponse) => myCustomCloneFunction(originalResponse)
    }
);
msereniti commented 2 years ago

You can use fork of this package that solves this issues and also allows you to provide a custom cache comparer. Suppose custom comparer may be much better solution that custom clone function as far as this package doesn't clone promise result

react-use-await