jquery Deferred例子

各种回调时为了让程序同步起来,干完一件再干另一件,所以jQuery有了Deferred,中文翻译是延迟,但个人觉得这是一个异步对列,看看例子吧

例子一:

function A() {
        var deferred = $.Deferred();
        setTimeout(function() {
            deferred.resolve("A return!");        
        }, 1000);
        return deferred.promise();
    }

    function B(value) {
        var deferred = $.Deferred();
        setTimeout(function() {
            deferred.resolve(value + "B return!");        
        }, 1000);
        return deferred.promise();
    }

    function C(value) {
        alert(value)
    }


    A().then(B).then(C);



例子二
$.when(function(){
        return "aaaaa";
    }).then(function(bb){
        alert(bb());
    }).done(function(aa) {
        console.log("成功完成");        
    });


例子三

var wait = function (dfd) {
    var task = function () {
        alert('completed!!');
        dfd.resolve("这里向下传递结果");
    }
    setTimeout(task, 5000);
}
$.Deferred(wait).done(function (str) {
    alert(str)
});




你可能感兴趣的:(jquery Deferred例子)