Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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_Promise - Fatal编程技术网

Javascript jquery承诺不开火

Javascript jquery承诺不开火,javascript,jquery,promise,Javascript,Jquery,Promise,加载此XML文件后,then函数未启动。我没有收到任何错误,我可以在“网络”选项卡中看到文件加载。我做错了什么 $.when( $.get("data/data.xml", {}, function (file) { xml = file; }) ).then(function(){ console.log("Loaded"); }); 在这种情况下,为什么要使用$。当时,get方法返回一个承诺(或延迟),因此您应该能够直接在该方法上链接,然后 $.g

加载此XML文件后,then函数未启动。我没有收到任何错误,我可以在“网络”选项卡中看到文件加载。我做错了什么

$.when(
    $.get("data/data.xml", {}, function (file) {
        xml = file;
    })
).then(function(){ 
    console.log("Loaded");
});

在这种情况下,为什么要使用
$。当
时,
get
方法返回一个承诺(或延迟),因此您应该能够直接在该方法上链接
,然后

$.get('data/data.xml', {}, function (file) {
    xml = file;
}).then(function(){ 
    console.log('Loaded');
});

在这种情况下,为什么要使用
$。当
时,
get
方法返回一个承诺(或延迟),因此您应该能够直接在该方法上链接
,然后

$.get('data/data.xml', {}, function (file) {
    xml = file;
}).then(function(){ 
    console.log('Loaded');
});

在本例中,这是因为xml格式不正确。看起来,如果xml已加载但无法解析,则不会触发$.get回调,但不会引发任何错误。

在本例中,这是因为xml格式不正确。看起来,如果xml已加载但无法解析,则不会触发$.get回调,但不会抛出错误。

我建议用户使用jQuery推荐的回调函数

jqXHR.success()、jqXHR.error()和jqXHR.complete()回调函数 方法从jQuery 3.0开始被删除可以使用jqXHR.done(), jqXHR.fail(),改为jqXHR.always()

在您的情况下,可以使用
done()
always()

如果你想成功执行

$.get("data/data.xml", {}, function (file) {
        xml = file;
} ).success( function(){ 
    console.log("Loaded");
} );
如果你想执行,无论成功与否

$.get("data/data.xml", {}, function (file) {
        xml = file;
} ).always( function(){ 
    console.log("Loaded");
} );

我建议用户使用jQuery推荐的回调函数

jqXHR.success()、jqXHR.error()和jqXHR.complete()回调函数 方法从jQuery 3.0开始被删除可以使用jqXHR.done(), jqXHR.fail(),改为jqXHR.always()

在您的情况下,可以使用
done()
always()

如果你想成功执行

$.get("data/data.xml", {}, function (file) {
        xml = file;
} ).success( function(){ 
    console.log("Loaded");
} );
如果你想执行,无论成功与否

$.get("data/data.xml", {}, function (file) {
        xml = file;
} ).always( function(){ 
    console.log("Loaded");
} );

嗯,您需要添加一个失败调用来检测错误。看看这个例子。不,你不知道@garglblarg在哪里声明了
xml
?那么,你需要添加一个失败调用来检测错误。看看这个例子。不,你不知道@garglblarg哪里是
xml
声明的?很好。我在重用我编写的一些旧代码来加载多个文件。没有意识到你可以把
然后
链接到
get
。很好。我在重用我编写的一些旧代码来加载多个文件。没有意识到你可以将
然后
链接到
get