Skip to content
🍾 Flexible promise-based React data loader
JavaScript TypeScript CSS
Branch: next
Clone or download


Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Don't run Chromatic on renovate branches, and auto accept changes on … Dec 8, 2019
.codesandbox Release v9.0.0 (#151) Oct 7, 2019
.github Add yarn install. Nov 14, 2019
.storybook Drop unnecessary storybook-chromatic import. Dec 2, 2019
brand Release v9.0.0 (#151) Oct 7, 2019
codemods Revert "GitBook: [master] 25 pages modified" Oct 7, 2019
docs Update Jan 29, 2020
examples Fix bootstrap script. Mar 27, 2020
packages Fix bootstrap script. Mar 27, 2020
stories Merge branch 'master' into next Oct 7, 2019
.all-contributorsrc docs: update .all-contributorsrc [skip ci] Jan 28, 2020
.eslintrc add linting for TS Sep 6, 2019
.gitbook.yaml Release v9.0.0 (#151) Oct 7, 2019
.gitignore Release v9.0.0 (#151) Oct 7, 2019
.npmrc Add npm config to make save-exact the default. Oct 30, 2019
.prettierrc Setup linting and prettier config. Dec 30, 2018
.travis.yml yarn ci doesn't always do a yarn install on Travis. Nov 24, 2019 Release v9.0.0 (#151) Oct 7, 2019
LICENSE Update LICENSE. Mar 3, 2019 docs: update [skip ci] Jan 28, 2020
babel.config.js convert react-async to TS Sep 6, 2019
jest.config.js jest config: also transform tsx files Sep 20, 2019
jest.setup.js Upgrade dependencies and improve test reporting. Aug 7, 2019
lerna.json Release v10.0.0 Dec 2, 2019
now.json Add GraphQL example. Nov 10, 2019
package.json Update dependency @storybook/react to v5.3.18 Mar 31, 2020
react-async.png Update logo. Apr 5, 2019
renovate.json Enable silent dependency auto update, except for major releases. Nov 9, 2019

React Async
Handle promises with ease.

latest version montly downloads minzipped size license
circleci status travis status code coverage code quality DeepScan grade
live examples Chromatic All Contributors

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 useAsync and useFetch hooks
  • Debug and develop every part of the loading sequence with the React Async DevTools
  • Provides convenient isPending, startedAt, finishedAt, et al metadata
  • Provides cancel and reload actions
  • Automatic re-run using watch or watchFn prop
  • Accepts onResolve, onReject and onCancel callbacks
  • 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!

Upgrading to v9

Version 9 comes with a minor breaking change. See Upgrading for details.


Getting started





Thanks goes to these wonderful people (emoji key):

Gert Hengeveld

💻 👀 💬


💻 📦

Lenz Weber

💻 📦 🤔


👀 📖

Fred K. Schott


Cedric van Putten


Tom Shane


Philip Peterson


Sibelius Seraphini


Jim Cummins


Mihkel Sokk


Jiří Brabec


Andrii U


Matthisk Heimensen


Danny Hurlburt

🤔 📖

Noel Yoo

⚠️ 💻 🤔

Adam Ratcliffe


Kent C. Dodds




Jacob Lee


Youngrok Kim


Munir Ahmed Elsangedy




Sal Olivares

💻 🐛

Neale Upstone


Martin Barksten


This project follows the all-contributors specification. Contributions of any kind welcome!

Similar projects

You can’t perform that action at this time.