0

我想检查是否存在具有特定扩展名的图像,如果存在,我想提醒扩展名,否则为“未知”。代码的检测部分工作正常,但是当我第一次警告 imagevar 时,var 为空,当我添加另一个警告时,var 具有正确的值。

$.get 命令是否需要很长时间才能完成或延迟来自哪里?

var extension = 'jpg';
var url = 'someimagefile.' + extension;
var imagevar = '';

$.get(url)
  .done(function() {
   imagevar = extension; 
    })
  .fail(function() {
    imagevar = 'unknown'; 
    });

alert(imagevar);
alert(imagevar);
4

2 回答 2

0

您需要在为 imagevar 分配值后在回调中使用警报,否则您的警报命令很可能会在您的 $.get 完成之前触发,因此 imagevar 分配了一个值。

因此,请确保将任何需要 $.get 结果的代码放入回调中。

var extension = 'jpg';
var url = 'someimagefile.' + extension;
var imagevar = '';

$.get(url)
  .done(function() {
   imagevar = extension; 
   alert(imagevar);
    })
  .fail(function() {
    imagevar = 'unknown'; 
    alert(imagevar);
    });
于 2013-08-09T13:38:42.707 回答
0

警报语句出现在 get 调用返回之前。一旦响应返回,就会调用为 .done 和 .fail 指定的函数。截至目前, $.get() 进入服务器,然后在响应返回之前执行 alert() 语句。尝试:

$.get(url)
    .done(function() {
        alert(extension); 
    })
    .fail(function() {
        alert('unknown'); 
    });
于 2013-08-09T13:40:36.297 回答