这是代码片段,在这里,我想检查一个图片的宽度或高度是否超过100,我想返回true,这样我就可以限制上传这样的文件/图片到数组。
const getHeightWidth = async () => {
const reader = new FileReader();
reader.readAsDataURL(file);
await reader.addEventListener('load', async (e) => {
const image = new Image();
image.src = reader.result;
await image.addEventListener('load', function () {
const { height, width } = this;
invalidFileHeightWidth = !!((height !== 100 || width !== 100));
return invalidFileHeightWidth;
});
});
};
我试过Promise.resolve以及直接返回声明,但到目前为止没有运气
2条答案
按热度按时间mpgws1up1#
如果你想使用
async
/await
,你需要将事件 Package 在一个Promise
构造函数中。下面是一个简单的工作示例,选择一个图像文件,它会给你的大小。
wrrgggsh2#
我将其分解为五个独立的函数:
loadImageFromFile
~使用FileReader
加载filename
的Promise
loadImage
~设置Image
对象的src
的Promise
loadImageFromFile
~将上述两个函数合并到一个调用中isValidSize
~验证给定图像的宽度/高度previewFile
~用于侦听文件输入的事件处理程序如果您想要一个巨大的单片功能,您可以尝试:
一个二个一个一个