Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
457 views
in Technique[技术] by (71.8m points)

js 如何让外部函数返回通过 onload 事件触发的内部函数的计算值?

例如:

function outerFunction()?{ //?外部函数
    var img = new Image();
    img.src = "data:image/png;base64,iVBORw0KGgo...";
    img.onload = function ()?{ //?内部函数
        //?这里通过一些运算获得了值?a
        //?那么如何让?outerFunction()?返回?a?这个值呢?
    };
    return /*?what??*/ ;
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

可以使用es6的async/await实现。

async function outerFunction() { // 外部函数
    var img = new Image();
    img.src = "data:image/png;base64,iVBORw0KGgo...";
    const getimg =()=> new Promise(resolve = >{
                img.onload = function () { // 内部函数
                                // 这里通过一些运算获得了值 a
                                 resolve(a); //通过resolve将a传出去 
                            };
                })
    let result = await getimg();
    return result;// result 就是a
 
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share

2.1m questions

2.1m answers

63 comments

56.7k users

...