Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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 jQuery延迟函数中的语句以静默方式失败_Javascript_Jquery_Jquery Deferred - Fatal编程技术网

Javascript jQuery延迟函数中的语句以静默方式失败

Javascript jQuery延迟函数中的语句以静默方式失败,javascript,jquery,jquery-deferred,Javascript,Jquery,Jquery Deferred,我遇到了一个jQuery问题,这使得调试JavaScript变得比现在更麻烦:如果jqXHR延迟函数中的语句失败,它们将无声地失败,我还没有找到捕获此错误的方法。考虑下面的例子: var xhr = $.ajax({type: "GET", url: "test.php"}); xhr.done(function() { a += b; }); 其中a和b均未定义。这应该会返回一个错误,但是所有的执行都会停止,我没有收到任何失败的通知。另一方面

我遇到了一个jQuery问题,这使得调试JavaScript变得比现在更麻烦:如果jqXHR延迟函数中的语句失败,它们将无声地失败,我还没有找到捕获此错误的方法。考虑下面的例子:

var xhr = $.ajax({type: "GET",
                   url: "test.php"});
xhr.done(function() { 
    a += b; 
});
其中a和b均未定义。这应该会返回一个错误,但是所有的执行都会停止,我没有收到任何失败的通知。另一方面,如果我写下以下内容:

function thisIsAnError() {
    a += b;
}
thisIsAnError();
它将如预期的那样失败,Firefox错误控制台和Firebug控制台都没有定义日志记录


谷歌搜索什么也没找到,也许jQuery中有一些错误处理功能我错过了?请注意,xhr.fail不会捕获此错误,因为失败的不是xhr。

调试js和imo的一种方法最好的方法是使用firefox的chrome扩展firebug。Firefox有一个比chrome扩展更高级的插件,但两者都可以工作

Alos、.fail不起作用,您要查找的是.error

您正在使用的$.get函数没有done方法。我相信你想要的是成功的方法。它的工作原理


对不起,我应该用一个更准确的例子——我实际上是用$.AJAX调用我的AJAX请求,它有一个.done函数。不管怎样,请注意,只记录一个错误,尽管a是未定义的并在两个位置调用。我只是查看了JSFIDLE,它给出了两个错误,不知为什么,我只得到了一个错误。看起来一定是我的机器出了故障,而不是jQuery本身。无论如何,谢谢你的帮助。编辑:在Chrome上,我有两个错误。火狐,一个。我想从现在起我将在Chrome上调试。我有Firebug。事实上,使用Firebug调试器单步执行代码会破坏它——当遇到错误时,它会停止无声地执行代码,但Firebug仍然认为它正在调试。