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

資訊專欄INFORMATION COLUMN

對于`Promise`部分屬性的理解

?。?。 / 1540人閱讀

摘要:對于和的理解今天碰到問題是這樣子的調(diào)試的時候發(fā)現(xiàn)走了也走了有在我印象里是走了就不該走后來發(fā)現(xiàn)是我理解錯了代碼是這樣的這個的是里的異常,里如果有任何異常都會被捕獲仔細(xì)看了是這樣解釋的簡單來講調(diào)用等于調(diào)用由于返回的是一個對象,返回值解釋如下如果

對于Promise.then()Promise.catch()的理解

今天碰到問題是這樣子的:
調(diào)試bug的時候發(fā)現(xiàn)axios走了then也走了有catch,在我印象里是走了then就不該走catch(后來發(fā)現(xiàn)是我理解錯了)
代碼是這樣的

this.axios.post("/user/login", params)
    .then(res => {
        console.log("response", res)
    })
    .catch(err => {
      // 這個catch catch的是then里的異常,then里如果有任何異常都會被catch捕獲
        console.log("catch")
        console.error(err.message)
    })

仔細(xì)看了Promise.catch()MCDN是這樣解釋的

The catch() method returns a Promise and deals with rejected cases only. It behaves the same as calling Promise.prototype.then(undefined, onRejected) (in fact, calling obj.catch(onRejected) internally calls obj.then(undefined, onRejected)).

簡單來講調(diào)用Promise.catch()等于調(diào)用Promise.prototype.then(undefined, onRejected)
由于Promise.then()返回的是一個Promise對象,返回值解釋如下:

throws an error, the promise returned by then gets rejected with the thrown error as its value;

如果拋出異常返回一個執(zhí)行rejectedPromise對象即相當(dāng)于調(diào)用返回PromisePromise.then(undefined, onRejected)

對于Promise.catch()的返回值是這樣解釋的:

The Promise returned by catch() is rejected if onRejected throws an error or returns a Promise which is itself rejected; otherwise, it is resolved.

如果Promise.catch()又拋出異常則相當(dāng)于又調(diào)用Promise.then(undefined, onRejected)
如果未拋出異常則相當(dāng)于調(diào)用Promise.then(onResolved,undefined)

promise.all()是順序開始,異步執(zhí)行,順序返回
// 示例代碼
const getRandom = () => +(Math.random()*1000).toFixed(0);

const asyncTask = taskID => new Promise(resolve => {
    let timeout = getRandom();
    console.log(`taskID=${taskID} start.`);
    setTimeout(function() {
        console.log(`taskID=${taskID} finished in time=${timeout}.`);
        resolve(taskID)
    }, timeout);
});

Promise.all([asyncTask(1),asyncTask(2),asyncTask(3)])
.then(resultList => {
    console.log("results:",resultList);
});

詳見這里

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/93153.html

相關(guān)文章

  • 從0開始擼一個Promise(一)

    摘要:說白了,就是給聲明的添加一個包含空的對象,再由函數(shù)返回這個空。如此構(gòu)成一個層層包裹的鏈。四首先本質(zhì)是一個遞歸函數(shù),結(jié)束條件是,即終止到未掛載對象的子為止??梢钥吹竭@個函數(shù)的作用就是根據(jù)屬性逐個觸發(fā)鏈中的或函數(shù)。 背景 Promise是一種非常實用的異步編程方案,本文對于Promise源碼的分析可以增進(jìn)讀者對于Promise原理的理解,以后不再害怕異步編程,不用擔(dān)心callback he...

    MSchumi 評論0 收藏0
  • [譯] 深入理解 Promise 五部曲:3. 可靠性問題

    摘要:簡單的說,即將到來的標(biāo)準(zhǔn)指出是一個,所以作為一個,必須可以被子類化。保護(hù)還是子類化這是個問題我真的希望我能創(chuàng)建一個忠實的給及以下。 原文地址:http://blog.getify.com/promis... 如果你需要趕上我們關(guān)于Promise的進(jìn)度,可以看看這個系列前兩篇文章深入理解Promise五部曲--1.異步問題和深入理解Promise五部曲--2.控制權(quán)轉(zhuǎn)移問題。 Promi...

    XboxYan 評論0 收藏0
  • Node.js 異步異聞錄

    摘要:的異步完成整個異步環(huán)節(jié)的有事件循環(huán)觀察者請求對象以及線程池。執(zhí)行回調(diào)組裝好請求對象送入線程池等待執(zhí)行,實際上是完成了異步的第一部分,回調(diào)通知是第二部分。異步編程是首個將異步大規(guī)模帶到應(yīng)用層面的平臺。 showImg(https://segmentfault.com/img/remote/1460000011303472); 本文首發(fā)在個人博客:http://muyunyun.cn/po...

    zzbo 評論0 收藏0
  • 淺解Promise

    摘要:對于異步的解決方案是新增的內(nèi)置對象,通常使用構(gòu)造函數(shù)創(chuàng)建,實例,解決異步問題。構(gòu)造函數(shù)必須接收一個函數(shù)作為參數(shù),我將其稱為函數(shù),函數(shù)也可以接收兩個參數(shù),和,它們是兩個函數(shù),由運行環(huán)境提供,無需自己部署。如何理解規(guī)范中的這三個狀態(tài)及其規(guī)則。 對于異步的解決方案 Promise Promise是ES6新增的內(nèi)置對象,通常使用Promise構(gòu)造函數(shù)創(chuàng)建,Promise實例,解決異步問題。 1...

    summerpxy 評論0 收藏0
  • ES6常用知識點概述

    摘要:那之前的例子來使用一下的話,你會發(fā)現(xiàn)瀏覽器報錯了,如圖定義的變量不允許二次修改。如圖箭頭函數(shù)沒有它自己的值,箭頭函數(shù)內(nèi)的值繼承自外圍作用域。如圖這里兩邊的結(jié)構(gòu)沒有一致,如果是的話,是可以正常解構(gòu)的。 前言 國慶假期已過一半,來篇干貨壓壓驚。 ES6,并不是一個新鮮的東西,ES7、ES8已經(jīng)趕腳了。但是,東西不在于新,而在于總結(jié)。每個學(xué)前端的人,身邊也必定有本阮老師的《ES6標(biāo)準(zhǔn)入門》或...

    keithyau 評論0 收藏0

發(fā)表評論

0條評論

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