react-use-promise-alternative
- keep result when recall promise
- resolved if return non promise
react-use-promise
React hook for handling promises.
Disclaimer
While this works and is an interesting use of hooks, it might be a better idea to use Suspense when dealing with promises.
Suspense isn't still fully released, but you can start using it with
React.lazy
.
Installation
Using npm:
$ npm install --save react-use-promise
Using yarn:
$ yarn add react-use-promise
Since this module uses React's new Hooks feature,
to try this out you'll need to install at least version 16.8.0
of react
and react-dom
:
$ yarn add react@^16.8.0 react-dom@^16.8.0
Usage
;; { const result error state = ; return <div> <p>state</p> <p>result || error</p> </div> ;}
API
usePromise<Result Error> Promise<Result Error> | Promise<Result Error> Array<any>: Result Error 'pending' | 'resolved' | 'rejected'
Receives a promise or a function that returns a promise and returns an array
with the promise's result, error and state. The state is a string that can
have one of three values: 'pending'
, 'resolved'
or 'rejected'
.
Note: You'll need to pass the inputs array to usePromise
, otherwise
this will try to resolve the promise on every render. For example:
const response error = ;
This will only call fetch
again when the url
changes.
If you only want to resolve the promise once, pass an empty array, like this:
const result error = ;
Development
Clone the repo and install the dependencies by running yarn
on the project's
root directory (or npm install
, if you don't have yarn installed).
Tests can be run with yarn test
(or npm test
) and there's an example
application that can be run with yarn example
(or npm run example
).
Contributing
Please feel free to submit any issues or pull requests.
License
MIT