React component and hook for declarative promise resolution and data fetching. Makes it easy to handle every
state of the asynchronous process, without assumptions about the shape of your data or the type of request.
Use it with fetch, Axios or other data fetching libraries, even GraphQL.
- Zero dependencies
 - Works with promises, async/await and the Fetch API
 - Now with experimental Suspense support
 - Choose between Render Props, Context-based helper components or the 
useAsyncanduseFetchhooks - Debug and develop every part of the loading sequence with the React Async DevTools
 - Provides convenient 
isPending,startedAt,finishedAt, et al metadata - Provides 
cancelandreloadactions - Automatic re-run using 
watchorwatchFnprop - Accepts 
onResolve,onRejectandonCancelcallbacks - Supports abortable fetch by providing an AbortController
 - Supports optimistic updates using 
setData - Supports server-side rendering through 
initialValue - Written in TypeScript, ships with type definitions
 - Works well in React Native too!
 
Version 9 comes with a minor breaking change. See Upgrading for details.
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
