Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中从单独的线程传递/访问值_Javascript_Jquery_Multithreading - Fatal编程技术网

在javascript中从单独的线程传递/访问值

在javascript中从单独的线程传递/访问值,javascript,jquery,multithreading,Javascript,Jquery,Multithreading,我正在尝试使用我在另一篇文章中找到/编辑的以下代码。 我想使用函数“IsValidImageUrl()”即时返回结果。由于此函数在单独的线程中运行,因此在获取值时遇到了问题,例如,如果使用“return True;”代替“isValid=True;”,则返回值总是“undefined”。所以我尝试使用全局变量“isValid”,但它似乎总是落后一步,这意味着我需要调用函数两次,才能得到第一次调用的结果 我到底错过了什么?或者你能推荐另一种我能做到的方法吗 谢谢大家! <script>

我正在尝试使用我在另一篇文章中找到/编辑的以下代码。 我想使用函数“IsValidImageUrl()”即时返回结果。由于此函数在单独的线程中运行,因此在获取值时遇到了问题,例如,如果使用“return True;”代替“isValid=True;”,则返回值总是“undefined”。所以我尝试使用全局变量“isValid”,但它似乎总是落后一步,这意味着我需要调用函数两次,才能得到第一次调用的结果

我到底错过了什么?或者你能推荐另一种我能做到的方法吗

谢谢大家!

<script>
    var isValid;
    function IsValidImageUrl(url) {
        $("<img>", {
                      src: url,
                      error: function() { isValid=false; },
                      load: function() { isValid=true; }
                    });
     }

    IsValidImageUrl("https://www.google.com/logos/2012/hertz-2011-hp.gif");
    alert(isValid);
    IsValidImageUrl("http://google.com");
    alert(isValid);
</script>

var是有效的;
函数IsValidImage url(url){
$("

问题是您必须等待映像加载或失败后才能使用状态。最好的方法是在映像加载或发生错误时,为IsValidImgUrl函数提供一个回调函数(或将成功和失败的回调函数分开运行)。
在本例中,image元素也传递给回调函数,以便它们知道调用了哪个映像

函数IsValidImageUrl(url、okFunc、errFunc)
{
var image=document.createElement(“IMG”);
image.src=url;
image.onload=function(){okFunc(image)};
image.onerror=function(){errFunc(image)};
}
函数imageLoadSucces(图像)
{
警报(“已加载图像:“+image.src”);
}
函数imageLoadFail(图像)
{
警报(“图像加载错误:+image.src”);
}
IsValidImage URL(“https://www.google.com/logos/2012/hertz-2011-hp.gif,imageLoadSucces,imageLoadFail);

IsValidImage URL(“http://google.com“,ImageLoadSuccess,imageLoadFail);
m69,你为我指明了正确的方向。非常感谢!