jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – .When()和.done()使用带.done的数组大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个谷歌内容脚本,我的程序需要向服务器进行大约30次AJAX调用.我正在使用JQuery的.when函数与.apply一起将数组传递给.when函数.我也在使用.done,我希望能够传入一个参数数组,这些参数将从.when函数获取延迟对象.有没有办法做到这一点?这就是我想要做的.
var callBACk = function(a) {
  console.log("done",a);
};
var requests = [];
var requestArray = [];
  for(i = 0; i < liclass.length; i++) {
  requests.push($.ajax({
      url: liclass[i],success: function() {;
      }
    }));
            var str = "messageArg" + i
        requestArray.push(str)
  }

$.when.apply($,requests).done(function(requestArray){
callBACk(requestArray)});

解决方法

如果你看一下 examples for $.when,你会看到回调被传递给每个promise的参数.如果该promise来自Ajax调用,那么每个参数都是[data,statusText,jqXHR]形式的数组.

所以你只需迭代参数并提取一个元素. $.map使这很容易:

$.when.apply($,requests)
  .then(function() {
    return $.map(arguments,function(v) {
      return v[0];
    });
  })
  .done(callBACk);

大佬总结

以上是大佬教程为你收集整理的jquery – .When()和.done()使用带.done的数组全部内容,希望文章能够帮你解决jquery – .When()和.done()使用带.done的数组所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。