多个异步请求执行顺序问题。

本文介绍了如何使用回调函数实现多个异步请求的顺序执行,并举例说明了如何确保异步操作之后的普通操作能够正确地依赖于异步操作的结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

情景一:

多个异步请求,伪代码:

Ajax1();
Ajax2();
Ajax3();

这三个Ajax请求并不存在执行顺序,也就是2和3并不会等第一个Ajax请求完成再去执行,而是直接执行如果想要达到顺序执行的效果,可以通过回调函数来完成,伪代码:

$.ajax({
url:"servletURL",
type:"post",//get
data:{},
dataType:"json",
success:function(data){

$.ajax({
url:"servletURL",
type:"post",//get
data:{},
dataType:"json",
success:function(data){

$.ajax({
url:"servletURL",
type:"post",//get
data:{},
dataType:"json",
success:function(data){}
});

}
});

}
});

这样的话,三个异步请求就会按顺序执行。绿->红->蓝。

情景二:

异步之后是普通操作:

var catName = "";
$.post("/item/cat/catName",{catId:data.cid},function(data){
    catName = data;
    },"text");
node.after("<span style='margin-left:10px;'>" + catName + "</span>");

对于上面的JS代码,是没有意义的,也就是说是错误的,原因就在于,位于异步请求下面的代码并不会等待异步请求完成之后再执行,而是会直接执行

所以想要上面的代码有效,应该这样写:

var catName = "";
$.post("/item/cat/catName",{catId:data.cid},function(data){
    catName = data;
    node.after("<span style='margin-left:10px;'>" + catName + "</span>");
},"text");


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值