封装一个图片预加载方法
方法:
const imgSrcQueue: Array<HTMLImageElement> = []; export function preloadImageList(names) { return new Promise((resolve) => { let n = 0, img, imgs = {}; names.forEach(function (name) { img = new Image(); imgSrcQueue.push(img); img.onload = img.onerror = (function (name, img) { return function () { imgs[name] = img; ++n === names.length && resolve(imgs); }; })(name, img); img.src = name; }); }); }
使用:
const loadingImageList = ['https://img.alicdn.com/imgextra/i3/O1CN01aDYIho1DM6MYWMeVD_!!6000000000201-2-tps-2405-1089.png']
useEffect(() => {
preloadImageList(loadingImageList);
}, []);