小编use*_*408的帖子

从数组调用多个ajax并在完成时处理回调

我之前稍微使用过jQuery中的promises - 但是我在将这个应用到这个场景时遇到了麻烦.我更喜欢使用$ .when()和$ .done()方法来实现这一点.

根据我的理解,我需要构建一个$ .Deferred对象来记录请求,当这些请求完成时 - 触发回调.在我的代码下面,回调是 ajax请求之前触发而不是之后 - 也许我只是需要一些睡眠

我知道我的代码不完整我一直在努力通过添加for循环来应用它.

http://jsfiddle.net/whiteb0x/MBZEu/

var list = ['obj1', 'obj2', 'obj3', 'obj4', 'obj5'];
var callback = function() {
  alert("done");
};
var requests = [];

var ajaxFunction = function(obj, successCallback, errorCallback) {
  for(i = 0; i < list.length; i++) {
    $.ajax({
      url: 'url',
      success: function() {
            requests.push(this);
      }
    });
  }
};
$.when($.ajax(), ajaxFunction).then(function(results){callback()});
Run Code Online (Sandbox Code Playgroud)

ajax jquery callback deferred

18
推荐指数
2
解决办法
2万
查看次数

延迟到方法链中的下一个功能

我想了解更多有关Javascript中的方法链接的信息,并想知道在没有jQuery的情况下为链中的下一个函数创建延迟的正确方法:

var foo = function() {
    this.delay = function(per) {
        setTimeout(start, per);
        return this;
    };
    this.start = function() {
        alert('start!');
    };
};

var bar = new foo().delay(1000).start();
Run Code Online (Sandbox Code Playgroud)

javascript delay method-chaining

8
推荐指数
1
解决办法
2723
查看次数

标签 统计

ajax ×1

callback ×1

deferred ×1

delay ×1

javascript ×1

jquery ×1

method-chaining ×1