-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to deal with missing values with createBatch? #43
Comments
That's an interesting question! And I would like to take some time for discussion and to think about this before presenting a possible "goto" solution. Here's whats coming to mind. (I don't have time to fully validate this right now, will do in the coming days) Adding A scenario that is not possible right now (I think) would be when you want to NOT store the missing |
I've added/updated two sections about this to the readme and added the functionality to fine-tune cache-metadata in batch requests in the latest release v3.2.0. see Fine-tuning cache metadata based on fresh values (This was already possible but not well documented, though this does not use I've also updated Batch requesting values to show the new With this in mind here's what I'd do.
If you want to not cache empty values or cache them for a much shorter time do something like this: const batch = createBatch((ids): Promise<(string | null)[]> => {
/* ... */
});
const values: (string | null)[] = await Promise.all(
ids.map((id) =>
cachified({
/* cache and other options... */
key: `entry-${id}`,
ttl: 60_000,
getFreshValue: batch.add(id, ({ value, metadata }) => {
if (value === null) {
/* -1 disables caching, you could also just set to a shorter time */
metadata.ttl = -1;
}
}),
})
)
);
|
Hi, thanks for creating this very useful library!
In the following example:
Imagine a scenario where some of the IDs that were requested in the
fetch
request do not return any result and are therefore missing from the data array. How should we deal with these missing values? Should we addnull
to the array or perhapsundefined
?Thanks!
The text was updated successfully, but these errors were encountered: