#691·reselect

Question: Why can't we support `createAsyncSelector`?

Author: xotahalCreated Jan 26, 2024Updated Jun 14, 2026
LabelsQuestion

Hey folks! First of all, great work on this library!

I have a question. I'd like to understand where the problem lies. I know that reselect doesn't support async selectors, and if we need to fetch data, we should use a thunk or another approach. That's fine and it works. But what if we need to use, let's say, a 3rd party library inside of a selector that computes something, but does that only in an async way?

For example, something like this:

javascript
const asyncSelector = createAsyncSelector(
   (state) => state.a,
   (state) => state.b,
   async (a, b) => {
     return await computeSomethingAsync(a, b);
   }

Also, if I want to use this as the input of another async selector:

javascript
const anotherAsyncSelector = createAsyncSelector(
   asyncSelector,
   (state) => state.c,
   async (resultAB, c) => {
     return await computeSomethingAsync(resultAB, c);
   }

I would just like to understand why this is considered an antipattern. Why can't we support this? This is not a case of fetching data; it's deriving data from the Redux store asynchronously.