成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

ES6學習筆記(四)--------------------------------------pr

zhaofeihao / 3303人閱讀

摘要:首先是一個構造器函數(shù),使用它必須通過一個實例出來,并且出來的實例暈有一個內(nèi)置的參數(shù),這個參數(shù)是一個函數(shù),這個參數(shù)擁有自己內(nèi)置的兩個參數(shù),和,并且這兩個參數(shù)也是兩個函數(shù)異步操作成功上面這個就是一個最簡單的對象屬于的一個方法,里面的兩個參數(shù)屬于

首先promise是一個構造器函數(shù),使用它必須通過new一個實例出來,并且new出來的實例暈有一個內(nèi)置的參數(shù),這個參數(shù)是一個函數(shù),這個參數(shù)擁有自己內(nèi)置的兩個參數(shù),resolve和reject,并且這兩個參數(shù)也是兩個函數(shù)

  var promise = new Promise(function(resolve, reject) {
  // ... some code
  if (/* 異步操作成功 */){
    resolve(value);
  } else {
    reject(error);
  }.then(function(){},
function(){})

*上面這個就是一個最簡單的promise對象

var a=new Promise(function(resolve,reject){
    console.log("A");
    resolve();
    console.log("B")
}).then(function(){
    console.log("C")
})
//A
//B
//C

var b=new Promise(function(resolve,reject){
    var success="success";
    var err="err";
    reject(err)
}).then(function(e){
    console.log(e)
},function(e){
    console.log(e)
})//err

then屬于promise的一個方法,then里面的兩個參數(shù)屬于promise的狀態(tài)達成后所調用的回調函數(shù),當promise狀態(tài)為成功時候,調用第一個函數(shù),失敗則調用第二個函數(shù),同時我們可以看出,promise實例在創(chuàng)建后的那一刻,它的實參函數(shù)就開始執(zhí)行,當resolve函數(shù)執(zhí)行后,promise對象的狀態(tài)由進行變?yōu)榱藞?zhí)行成功,同樣,reject函數(shù)的執(zhí)行將promise狀態(tài)由進行變?yōu)槭?/strong>

另外resolve和reject也起到傳遞信息的作用,信息通過他們的參數(shù)來傳遞,then方法則可以來接收傳遞的信息

關于Promise的一些屬性方法可以Promise.prototype獲取,注意:Promise首字母一定要大寫

當然then方法可以采用鏈式反應,即當then方法的參數(shù)(回調函數(shù))執(zhí)行后又返回一個promise實例,則后面的then會繼續(xù)等待該實例最終的狀態(tài)而采取回調

var b = new Promise(function (resolve, reject) {
    var a = function () {
        return new Promise(function (resolve, reject) {
            var c = 1;
            resolve(c)
        })
    };
    reject(a)
}).then(function (e) {
    console.log(e)
}, function (e) {
    var d = e();
    return d
}).then(function (e) {
    console.log(e)
}, function (e) {
    console.log(e)
})//1

Promise的catch方法是當上面的程序發(fā)生錯誤的時候指定所要執(zhí)行的回調函數(shù),該回調函數(shù)有一個參數(shù)err,用來儲存捕獲到的錯誤

    var a=function(){
        return new Promise(function(resolve,reject){
            resolve(x+3)//x沒有聲明
        }).catch(function(err){
            console.log(err)
        }).then(function(){console.log("success")},
            function(){
                console.log("err")
            })
    };
    a()//輸出 x is not defined
    
    var a=function(){
        return new Promise(function(resolve,reject){
            resolve(x+3)
        }).then(function(){console.log("success")},
            function(){
                console.log("err")
            })
    };
    a()//輸出err
  
  var a=function(){
        return new Promise(function(resolve,reject){
            reject(x+3)
        }).then(function(){console.log("success")},
            function(){
                console.log("err")
            })
    };
    a()//輸出err  

第一個例子里面當reslove被調用的時候發(fā)生錯誤,catch捕捉錯誤并執(zhí)行回調函數(shù),catch后面的then方法則成為對于catch做出的結果進行回調,由于捕獲錯誤成功,則調用then的第一個回調函數(shù)
從2號例子中我們對比可以看出在promise狀態(tài)又進行到成功需要resolve函數(shù)執(zhí)行成功才能判定promise狀態(tài)成功,resolve函數(shù)沒有執(zhí)行成功,則promise狀態(tài)立刻變?yōu)閞eject失敗,并調用then后第二個函數(shù)
從3號例子可以看出,promise中的狀態(tài)執(zhí)行失敗都會調用reject

var a=function(){
        return new Promise(function(resolve,reject){
            console.log(1)
        }).then(function(){console.log("success")},
            function(){
                console.log("err")
            })
    };
    a()  //1

我們從上面例子可以看出沒有給promise指定狀態(tài)時候,then方法是不會被激活

var a=function(){
        return new Promise(function(resolve,reject){
            resolve();reject();
        }).then(function(){console.log("success")},
            function(){
                console.log("err")
            })
    };
    a()//success

上面例子我們可以看出一旦有一個狀態(tài)被指定就不能在改變。

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/88498.html

相關文章

  • ES6學習筆記)--------------------------------------pr

    摘要:首先是一個構造器函數(shù),使用它必須通過一個實例出來,并且出來的實例暈有一個內(nèi)置的參數(shù),這個參數(shù)是一個函數(shù),這個參數(shù)擁有自己內(nèi)置的兩個參數(shù),和,并且這兩個參數(shù)也是兩個函數(shù)異步操作成功上面這個就是一個最簡單的對象屬于的一個方法,里面的兩個參數(shù)屬于 首先promise是一個構造器函數(shù),使用它必須通過new一個實例出來,并且new出來的實例暈有一個內(nèi)置的參數(shù),這個參數(shù)是一個函數(shù),這個參數(shù)擁有自己...

    Jochen 評論0 收藏0
  • CSS技巧

    摘要:技巧使你的更加專業(yè)這是上關于技巧的一篇譯文,另外你也可以在本項目看到原文。列舉了一些很實用的技巧,比如給空內(nèi)容的標簽添加內(nèi)容,逗號分隔列表等等。排序算法看源碼,把它背下來吧排序算法的封裝。主要幫助初學者更好的掌握排序算法的實現(xiàn)。 成為專業(yè)程序員路上用到的各種優(yōu)秀資料、神器及框架 成為一名專業(yè)程序員的道路上,需要堅持練習、學習與積累,技術方面既要有一定的廣度,更要有自己的深度。 Java...

    DangoSky 評論0 收藏0
  • CSS技巧

    摘要:技巧使你的更加專業(yè)這是上關于技巧的一篇譯文,另外你也可以在本項目看到原文。列舉了一些很實用的技巧,比如給空內(nèi)容的標簽添加內(nèi)容,逗號分隔列表等等。排序算法看源碼,把它背下來吧排序算法的封裝。主要幫助初學者更好的掌握排序算法的實現(xiàn)。 成為專業(yè)程序員路上用到的各種優(yōu)秀資料、神器及框架 成為一名專業(yè)程序員的道路上,需要堅持練習、學習與積累,技術方面既要有一定的廣度,更要有自己的深度。 Java...

    zgbgx 評論0 收藏0
  • react入門學習筆記(一)

    摘要:選擇的主要原因大概是因為該框架出現(xiàn)較早,感覺上會相對成熟,日后學習中遇到問題想要查找答案相對簡單一些,對,就是這么簡單。多說無益,接下來開始的學習,我按照我學習中帶著的問題來一一解答,完成我的入門筆記。主要是針對前端的組件化開發(fā)。 這兩天得空,特意來折騰了以下時下火熱的前端框架react,至于為什么選react,作為一個初學者react和vue在技術上的優(yōu)劣我無權評論,也就不妄加評論了...

    leon 評論0 收藏0

發(fā)表評論

0條評論

zhaofeihao

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<