gpt4 book ai didi

jquery - 将 Json 调用设为同步来同步

转载 作者:行者123 更新时间:2023-12-01 08:23:35 25 4
gpt4 key购买 nike

在下面的代码中,fun1() 和 fun2() 是异步执行的,但它们依赖于它们上面的 json 调用是否成功。

$.getJSON("../../CreateCustomer/SaveRoleInSession/" + data.SelectedRole, null, function (data) {});
Fun1();
Fun2();

我可以将这些函数调用放在大括号内以使其同步吗?

那就是:

$.getJSON("../../CreateCustomer/SaveRoleInSession/" + data.SelectedRole, null, function (data) 
{
Fun1();
Fun2();
});

最佳答案

这并不完全使其同步(调用仍然不会阻塞),但它会导致您的方法在返回响应后作为回调的一部分被调用,这可能适合您的情况。

我自己正在学习 jquery ajax,我能告诉你的是,您需要使用 ajax() 方法,并将 async 选项设置为 false 才能实现真正的同步行为。

api浏览器中给出的例子是:

 var html = $.ajax({
url: "some.php",
async: false
}).responseText;

我尝试在 ASP.NET 中的客户端验证方法内部自己发出同步请求,使用 JSON 服务时这种方法的一个缺点是您需要自己进行 JSON 解析/反序列化,而在异步请求中,解析的数据作为对象传递给您的成功回调。我遇到你的问题,试图找到解析响应文本的首选方法。我正在查看的 api 浏览器似乎不包含 parseJSON 方法,但有一个,所以我将使用它与 Eval()。

还值得注意的是,在注意到他们的同步示例之前,我尝试将 async 选项设置为 false 并将我的回调方法写入全局变量,然后在 aync 调用下方的行中引用该 var,而不是引用 XMLHttpRequest。 responseText 属性,但那是无效的。这样做后,ajax 调用后面的行似乎没有被执行。 YMMV。

http://api.jquery.com/jQuery.ajax/

http://api.jquery.com/jQuery.parseJSON/

关于jquery - 将 Json 调用设为同步来同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5715422/

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