Omitting fetcher function argument is ambiguous?
tmladek opened this issue · 6 comments
The README states:
Note that fetcher can be any asynchronous function, so you can use your favorite data-fetching library to handle that part. If ommitted, swrv uses the Fetch api.
But later also:
To only retrieve a swrv cache response without revalidating, you can omit the fetcher function from the useSWRV call.
So, which one is it? :) Or am I misunderstanding what omitting means in the first case?
yes it is ambiguous, thanks for noting! We need to document and maybe add some tests so it's clear. It should be:
- To only retrieve a swrv cache response without revalidating, you can omit the fetcher function from the useSWRV call
+ To only retrieve a swrv cache response without revalidating, you can set the fetcher function to `null` from the useSWRV call
If it is "omitted" (aka undefined
) then the Fetch api will be used.
Line 189 in bd6c7e6
Relevant swr issue: vercel/swr#738
This is great, but the typings for it do not allow null
, it should be a quick fix to just add null
to the type definition.
My PR resolves typing problem.
#274
Current doc is not ambiguous for me, function calls f()
, f(undefined)
and f(undefined, undefined)
have the same arguments (geek note: except argument length). In JS, omitting argument always means supplying undefined
.
Yeah, but I think it's good to clarify the doc.
afaik, the null
fetcher behaves like Promise.race([])
or () => new Promise<never>(() => {})
(meaning resolves after infinite minutes), but isVaildating
value differs.