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

标签 javascript jquery ajax

我无法理解以下代码:

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 。我不想解释整个 promise 机制,而是回答问题,第一个和第二个之间的区别 x是第一个将在 ajax 之后立即执行调用 resolve 而第二个将在 then 中指定为参数的函数之后解析函数被执行(注意 then 函数将在 ajax 调用解析后执行...这称为链接)。

关于javascript - 了解 $.ajax() 和 $.ajax().then 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35892097/

相关文章:

javascript - 如何使用 javascript 从输入字段读取表单选择字段?

javascript - AJAX 请求中作为 URL 传递的变量重复部分 url

javascript - 我的“完成”按钮不知何故转到了空白页面,除非刷新 -ajax,否则删除将不起作用

jquery - Bootstrap 4 ajax成功消息快速闪过

javascript - id 和标签在 jQuery 加载后被删除

javascript - 在后台上下文中的脚本之间进行通信(后台脚本,浏览器操作,页面操作,选项页面等)

javascript - 无法将变量获取到 Jquery 函数中

javascript - 使用jquery创建id失败

jquery - 使用 jQuery(或其他)劫持 ASP.NET MVC 上的表单提交

jquery - 对图像执行 function() 后,对下一个图像执行相同的操作(jQuery)