一、前言

大約在夏季,我們談過ES6的Promise(詳見here),其實(shí)在ES6前jQuery早就有了Promise,也就是我們所知道的Deferred對(duì)象,宗旨當(dāng)然也和ES6的Promise一樣,通過鏈?zhǔn)秸{(diào)用,避免層層嵌套,如下:

移動(dòng)開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

//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'});

移動(dòng)開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

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

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

    • <style id="zd9gs"><mark id="zd9gs"><cite id="zd9gs"></cite></mark></style>
    • 二、jQuery之Deferred源碼剖析

      延伸閱讀

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

      我想了解如何學(xué)習(xí)

      姓名:
      手機(jī):
      留言: