一、前言

大約在夏季,我們談過ES6的Promise(詳見here),其實在ES6前jQuery早就有了Promise,也就是我們所知道的Deferred對象,宗旨當然也和ES6的Promise一樣,通過鏈式調用,避免層層嵌套,如下:

移動開發(fā)培訓,Android培訓,安卓培訓,手機開發(fā)培訓,手機維修培訓,手機軟件培訓

//jquery版本大于1.8function runAsync(){    var def = $.Deferred();
    setTimeout(function(){
        console.log('I am done');
        def.resolve('whatever');
    }, 1000);    return def;
}
runAsync().then(function(msg){
    console.log(msg);//=>打印'whatever'}).done(function(msg){
    console.log(msg);//=>打印'undefined'});

移動開發(fā)培訓,Android培訓,安卓培訓,手機開發(fā)培訓,手機維修培訓,手機軟件培訓

注:從jQuery1.8版本開始,then方法會返回一個新的受限制的deferred對象,即deferred.promise()—后續(xù)源碼解讀中我們會更加全面地了解到。因此,上述代碼done中會打印’undefined’。

好了,通過上述示例代碼,短暫的回顧了jQuery的Deferred使用后,我們一起來看看jQuery是怎么實現(xiàn)Deferred,當然解讀jQuery的版本是大于1.8。

    二、jQuery之Deferred源碼剖析

    延伸閱讀

    學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網站設計培訓,網站建設培訓學習是年輕人改變自己的最好方式

    我想了解如何學習

    姓名:
    手機:
    留言: