svelte reactive async
import { writable, derived } from 'svelte/store';
const package_name = writable('svelte');
const download_count = derived(
package_name,
($package_name, set) => {
fetch('https://api.npmjs.org/downloads/point/last-week/' + $package_name)
.then(response => response.json())
.then(data => set(data.downloads));
return () => {
// We override the `set` function to eliminate race conditions
// This does *not* abort running fetch() requests, it only prevents
// them from overriding the store.
// To learn about canceling fetch requests, search the internet for `AbortController`
set = () => {}
}
}
);
// Updating `$package_name` will asynchronously update `$download_count`