SolidJSS
SolidJSโ€ข2y agoโ€ข
5 replies
Kalu

Async Primitive

Hi I'm a bit stuck, you know that primitive is asynchronous and can be used in a following case.
there's the createResource primitive, but I can't see how to use it properly, especially as I'd like to be able to put the files in indexedDB.

let images: Promise<{ items: ImageType[]; }> | undefined;
async function fetchImages(forceRefresh: boolean = false) {
  if (!images || forceRefresh) {
    images = fetch("/images");
  }
  return images;
}
function DisplayImage() {
  async function getImage() {
    let files = await fetchImages();
    let file = files.items.find(file => file.key === key);
    if (!file) {
      let files = await fetchFiles(true);
      let file = files.items.find(file => file.key === key);
      return file
    }
    return file;
  }
  let key = "key_image";
  return <>
    <img src={getImage(key)} /> // <- error is async
  </>;
}
Was this page helpful?