如何从 API 响应缓存图像

问题描述

我从 API 响应接收图像 URL,我想缓存每个图像。我尝试只使用 cache.addAll 但它不起作用,因为图像是不透明的响应。我正在考虑使用 fetch 获取每个图像并让路由缓存它们,但我不确定这是否是最好的方法。还有其他更好的选择吗?

解决方法

this Stack Overflow answer 中有一些指南解释了如何缓存不透明的响应;它的要点是:

const request = new Request('https://third-party-no-cors.com/',{
  mode: 'no-cors',});

// Assume `cache` is an open instance of the Cache class.
fetch(request).then(response => cache.put(request,response));

需要注意的是,您的代码无法知道您缓存的是有效响应、HTTP 404 或其他错误。