Hello hackers! Normally I would discuss this with the team but it's just me and our Tech Lead on the FE so I'm posting here for my own educational purposes.<p>I submitted a PR review containing an async function in a React useCallback earlier and our tech lead mentioned that:<p>"You can't async useCallback, it can cause unexpected behavior. To achieve a memoised async function instead use useMemo".<p>It was always my understanding that useCallback returned a memoised function and useMemo a memoised result or am I missing something here?<p>The asynchronicity should also be irrelevant or?<p>Any feedback would be appreciated, thanks!
You can memoize any function with `useCallback`, sync or async. All it's doing is watching when the deps array changes, and saving whatever function reference was passed in at that time.<p>(Note that this does not mean that the function itself is memoized in terms of "cache the result and check the arguments to see if we know this answer already".)