最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

$.Deferred(),for循环内异步请求问题的解决方法

来源:动视网 责编:小采 时间:2020-11-27 20:12:40
文档

$.Deferred(),for循环内异步请求问题的解决方法

$.Deferred(),for循环内异步请求问题的解决方法:问题:有一个数组,数组中每一个元素异步请求后端获得相应的内容进行操作。var arr=[];for(let i=0;i<arr.length;i++){ $.post("请求地址",传递数据,function(){ //异步请求后的操作 }) }for循环中使用异步请求时出现的问题
推荐度:
导读$.Deferred(),for循环内异步请求问题的解决方法:问题:有一个数组,数组中每一个元素异步请求后端获得相应的内容进行操作。var arr=[];for(let i=0;i<arr.length;i++){ $.post("请求地址",传递数据,function(){ //异步请求后的操作 }) }for循环中使用异步请求时出现的问题


问题:有一个数组,数组中每一个元素异步请求后端获得相应的内容进行操作。

var arr=[];for(let i=0;i<arr.length;i++){
 $.post("请求地址",“传递数据”,function(){
 //异步请求后的操作
 })
}

for循环中使用异步请求时出现的问题就是:异步请求是不阻塞主程序,当异步请求出数据的时候,主程序可能已经结束,这就给我们程序带来问题。

如何在for循环内使用异步请求,同时保证数据的执行顺序?

解决办法:$.Deferred()

var lives=[……];
var defer = $.Deferred(); 
defer.resolve($("#aa").append("没有意义")); //该句为必须的,即使什么也不需要操作
$.each(lives,function(i,e){ 
 defer = defer.then(function () { 
 return $.ajax({ //进行异步请求操作
 url:"请求地址", 
 type:'post',
 data:{ //异步请求的数据
 "username":lives[i].username,
 "userId":lives[i].id,
 },
 dataType: "jsonp",
 success:function(data){ 
 //异步请求后的操作
 } 
 })
 }); 
});

另外$.deferred()相关内容还有很多

文档

$.Deferred(),for循环内异步请求问题的解决方法

$.Deferred(),for循环内异步请求问题的解决方法:问题:有一个数组,数组中每一个元素异步请求后端获得相应的内容进行操作。var arr=[];for(let i=0;i<arr.length;i++){ $.post("请求地址",传递数据,function(){ //异步请求后的操作 }) }for循环中使用异步请求时出现的问题
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top