国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

琛h。 / 1520人閱讀

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

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

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

this.axios.post("/user/login", params)
    .then(res => {
        console.log("response", res)
    })
    .catch(err => {
      // 這個(gè)catch catch的是then里的異常,then里如果有任何異常都會(huì)被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()返回的是一個(gè)Promise對象,返回值解釋如下:

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

如果拋出異常返回一個(gè)執(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://m.specialneedsforspecialkids.com/yun/93153.html

相關(guān)文章

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

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

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

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

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

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

    zzbo 評論0 收藏0
  • 淺解Promise

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

    summerpxy 評論0 收藏0
  • ES6常用知識(shí)點(diǎn)概述

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

    keithyau 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<