gpt4 book ai didi

javascript - jQuery 中的函数不返回变量

转载 作者:行者123 更新时间:2023-12-02 17:47:42 28 4
gpt4 key购买 nike

我正在尝试检测我拥有其 URL 的图像的宽度:

var getWidth = function( url ){
var i = new Image;
i.onload = function(){
var width = (this.width);
alert( width ); // width defined here
return width;
}
i.src = url;
}
var theWidth = getWidth( url );
alert( theWidth ); // undefined here

在加载图像之前我需要宽度,以便我可以修改其容器。我觉得这里有一个明显的解决方案,但我无法弄清楚。谢谢!

最佳答案

您无法从异步回调中返回。想一想。这看起来是不是有点奇怪?

function foo () {
setTimeout(function(){
return "Hello World!";
},2000)
}
alert(foo()); // undefined

该函数将返回未定义,因为它在超时之前完成。要解决此问题,请让函数接受以所需值执行的回调。

function foo(callback) {
setTimeout(function(){
callback("Hello World!");
},2000)
}
foo(function(msg){
alert(msg); // Hello World!
});

关于javascript - jQuery 中的函数不返回变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21614880/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com