将image.onload的值传递给周围的函数

问题描述 投票:0回答:1

[我想知道是否存在图像路径,因此我使用onloadonerror使用Javascript加载图像:

Handlebars.registerHelper('image', function(submission_id, point_id) {
    var picture = new Image();

    picture.onload = function() {
        alert('test');
        result = '<img src="' + picture.src + '" />';
    };
    picture.onerror = function() {
        result = '0';
    };
    picture.src = 'static/uploads/submissions/' + submission_id + '/' + point_id + '.png';
    return result;
});

Onloadonerror正在工作,因为如果路径正确,则会收到警报“测试”。但是问题是,返回result不起作用。我知道,这是行不通的,因为onload被异步调用并在返回结果后触发。但是我该如何解决呢?

javascript dom-events onload onerror
1个回答
1
投票

由于代码是异步的,所以return语句将无法工作。相反,您需要做的是定义一个函数(称为回调),该函数在加载图像时被调用。然后您的代码将如下所示。

© www.soinside.com 2019 - 2024. All rights reserved.