vrijdag 6 februari 2015

Jquery deferred

var dF = function() {
    var deferred = $.Deferred();
    deferred.resolve("mik");
    return deferred.promise();
};

var dF2 = function() {
    var deferred = $.Deferred();
    deferred.resolve("mak");
    return deferred.promise();
};

var dArray = [ ];
dArray.push(dF());
dArray.push(dF2());

$.when.apply(this,dArray).then(function() {
    var i  = 0;
    for (i = 0; i < arguments.length; i++) {
        alert(arguments[i]);
    }
});

of zo:

var dF = function() {
    var deferred = $.Deferred();
    deferred.resolve("mik");
    return deferred.promise();
};

var dF2 = function() {
    var deferred = $.Deferred();
    deferred.resolve("mak");
    return deferred.promise();
};

$.when(dF(),dF2()).then(function(data, data2) {
    alert(data);
    alert(data2);
});

extra: 
.then actually creates a new deferred object and sends that to the chain. Since you didn't return anything from .then, the new deferred object has no arguments.

The most common use for .then is chaining ajax requests:

$.ajax({...}).then(function(){
    return $.ajax({...});
}).then(function(){
    return $.ajax({...});
}).then(function(){
    return $.ajax({...});
}).then(function(){
    return $.ajax({...});
});

Geen opmerkingen:

Een reactie posten