gpt4 book ai didi

javascript - 使用 JqueryAJAX 中的 ".then"到 "normal"函数?

转载 作者:行者123 更新时间:2023-11-30 14:25:04 25 4
gpt4 key购买 nike

情况如下:

$("#someThing").datepicker({
//someOptions,
onSelect: function() {
/*Does some async stuff*/
AJAXCALL();
/*execute AFTER ajaxcall has finished*/
foo();
}
})


function AJAXCALL() {
$.post('someUrl.php', {
//nothing to transmit
}, someFunction(data))
}

事情是,导致处理 DataFromTheDatabase 的级联函数。这个级联内部的代码要么是同步的,要么内部有异步/等待部分可以正确同步代码。

最终,初始 AJAXCALL() 和后续函数必须在执行 foo() 之前完成。

执行以下操作是否足够:

$("#someThing").datepicker({
//someOptions,
onSelect: function() {
AJAXCALL().then(() => {
foo()
})
}
})


function AJAXCALL() {
return $.post('someUrl.php', {
//nothing to transmit
}).then((data) => someFunction(data))
}

最佳答案

使用当前版本的 jQuery 已经足以像您在第二个示例中那样编写它:

$("#someThing").datepicker({
//someOptions,
onSelect: function() {
AJAXCALL().then(() => {
foo()
})
}
})


function AJAXCALL() {
return $.post('someUrl.php', {
//nothing to transmit
}).then((data) => someFunction(data))
}

因此 someFunction 将在调用 foo 之前被调用。

而且你不需要写 .then((data) => someFunction(data)) 而你可以只写 .then(someFunction)foo 也是如此:

$("#someThing").datepicker({
//someOptions,
onSelect: function() {
AJAXCALL().then(foo)
}
})


function AJAXCALL() {
return $.post('someUrl.php', {
//nothing to transmit
}).then(someFunction)
}

关于javascript - 使用 JqueryAJAX 中的 ".then"到 "normal"函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52075478/

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