gpt4 book ai didi

javascript - 在 $.ajax 成功后执行一个函数,而不是直接将其放入回调中

转载 作者:行者123 更新时间:2023-11-29 16:05:43 24 4
gpt4 key购买 nike

我有这个函数,我的代码的很多部分都调用了它。

function test() {
$.ajax({
url : url,
type : 'GET',
success : {
verifyID();
verifyName();
verifyBlah();
}
});
}

我还有其他功能:

addProductCart(productID);

在我调用 addProductCart() 之前,我需要调用测试函数,但是,其他进程调用测试函数。

我想这样做:

test() ---> if test ok (success) ----> addProductCart()

但我无法将我的函数 (addProductCart) 设置为成功测试函数,因为正如我所说,许多其他进程调用测试函数。

我该怎么做?

最佳答案

Use Promises!

test 函数返回一个 promise ,如下所示:

function test() {
return $.ajax({ // <----- Notice the return statement here
url : url,
type : 'GET',
success : {
verifyID();
verifyName();
verifyBlah();
}
});
}

当你需要使用这个函数来测试一些东西并在测试通过时执行另一段代码时你可以这样做:

test().then(function(data, textStatus){
//do thing 1
addProductCart()
// you can use data or textStatus returned by your ajax function here too!
});

test(someParam).then(function(data, textStatus){ // <--- You can even pass parameters to test function like here, and make it do different ajax call based on your param
//do thing 2
});

有关其工作原理的更多详细信息,请参阅 jQuery docs for $.ajax .功能

这是一个很棒的tutorial关于 JavaScript Promises 的概念,如果您不熟悉它们,可以帮助您入门。

关于javascript - 在 $.ajax 成功后执行一个函数,而不是直接将其放入回调中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43359923/

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