首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript image onload方法-捕获错误

Javascript image onload方法-捕获错误
EN

Stack Overflow用户
提问于 2021-06-05 14:55:20
回答 1查看 43关注 0票数 0

这个(getSizeFromObjectUrl)函数可以很好地计算实际图像的高度和宽度。我尝试过使用文件(ObjectURL)而不是图像(例如:文本文件),代码永远不会到达try-catch中的catch块。使用img.onload捕获错误/加载异常的方法有哪些

代码语言:javascript
运行
复制
function getSizeFromObjectUrl(dataURL: string): Promise<{ width: number; height: number }> {
    return new Promise((resolve) => {
        try {
            const img = new Image();
            img.onload = () => {
                const ratio = Math.min(maxImageWidth / img.width, maxImageHeight / img.height, 1);
                resolve({
                    width: img.width * ratio,
                    height: img.height * ratio
                });
            };
            img.src = dataURL;
        } catch (exception) {
            logCalculateImageSizeFailed(exception);
            // handle error
        }
    });
}
EN

回答 1

Stack Overflow用户

发布于 2021-06-05 14:58:58

img.onerror使用promise reject

注意,在Promise executor回调中添加了reject参数-请参阅代码中的注释

代码语言:javascript
运行
复制
function getSizeFromObjectUrl(dataURL: string): Promise<{width: number;height: number}> {
    return new Promise((resolve, reject) => { // amended this line
        const img = new Image();
        img.onerror = reject; // added this line
        img.onload = () => {
            const ratio = Math.min(maxImageWidth / img.width, maxImageHeight / img.height, 1);
            if (img.width && img.height) {
                resolve({
                    width: img.width * ratio,
                    height: img.height * ratio
                });
            } else {
                reject('Bad Image');
            }
        };
        img.src = dataURL;
    }).catch(exception => {
        logCalculateImageSizeFailed(exception);
        // handle error
    });
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67847117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档