gpt4 book ai didi

javascript - 一个按钮提交 AJAX,另一个按钮查询该 AJAX 结果

转载 作者:行者123 更新时间:2023-12-01 03:58:55 24 4
gpt4 key购买 nike

这个问题是我尝试学习 Promise 和 Deferreds 的一部分。假设您有一个提交 POST 的按钮:

$("#submit").click( function() {
$.post({...})
})

我的理解是,AJAX 本身就是一个 promise (这显然是有道理的),所以我想做的是,当用户单击 #check 时,它会返回 AJAX 的输出一次它已完成(假设只有在单击 #submit 后才能单击 #check)。

我认为这很简单,所以我最初的代码是:

$("#check").click(function() {
$.when($.post({...})).done( function(data) {
console.log("data")
})
})

但我意识到,在此实现中,AJAX 在单击 #check 之前不会开始 POST。不需要任何 #submit 按钮,并且在 #submit 中使用 AJAX .post 是多余的。

有没有办法使用 promise /延迟来实现我正在做的事情?

最佳答案

只需存储 post 返回的 Promise。

var myPromise = null;
$("#submit").click( function() {
myPromise = $.post({...});
});

$("#check").click(function() {
if (myPromise) {
myPromise.then( function(data) {
console.log("data");
});
}
});

我所做的其他更改是使用 then() 而不是 done() (接受成功、失败或进度的单个函数),并且我添加了语句结尾分号(因为自动分号插入会杀死小狗)。

一旦你完成了 Promise 的学习,就可以快速转到 observables 。使用 JavaScript,乐趣永无止境。

关于javascript - 一个按钮提交 AJAX,另一个按钮查询该 AJAX 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42355181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com