了解 $.ajax() 和 $.ajax().then 之间的区别

Understanding difference between $.ajax() and $.ajax().then

本文关键字:ajax 区别 之间 then 了解      更新时间:2023-09-26

我在理解以下代码时遇到问题:

var x = $.ajax({
    url : "sample_url",
    dataType : "json",
    data : {
        "invalidate_cache" : true
    }
});

现在,如果我这样做

var y = x.then();

它返回与 x 相同的函数。如果按以下方式分配 x,也会有什么不同(除了在 ajax 成功返回期间打印"Hello 1"):

var x = $.ajax({
    url : "sample_url",
    dataType : "json",
    data : {
        "invalidate_cache" : true
    }
}).then(function(data){console.log("Hello 1")};

ajaxthen 函数都会给你一个承诺。 我不想解释整个 promise 机制,但要回答这个问题,第一个和第二个x之间的区别在于,第一个将在ajax调用解析后立即执行,而第二个将在执行then函数中指定为参数的函数后解析(请注意,then函数将在ajax调用解析后执行......这称为链接)。