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

資訊專欄INFORMATION COLUMN

promise async await 理解筆記

NoraXie / 3024人閱讀

摘要:在異步編程中,提供了對象的方式。例如等同于所以可以理解為生成一個實例。那么自然也可以去調用則是配合使用的。等于是等待一個返回值,等待的執行結果。但是函數不會造成阻塞,所以配合使用,則沒有影響到外部。

在異步編程中,es6提供了promise對象的方式。
簡單的用法

var promise = new Promise((resolve,reject)=>{
    if(){
        resolve(res)
    }else{
        reject(res)
    }
})
promise.the((res)=>{}).catch((res)=>{})

而async 實則是返回了一個promise對象

async function test(){
    console.log("123");
}
var restult = test();
console.log(result);//=>>Promise{"123"};
//如果函數return 一個直接量,那么就等于直接去調用Promise.resolve()方法
//Promise.resolve方法也就是生成一個Promise實例,并且其直接調用resolve。
//例如
Promise.resolve("test");
//等同于
new Promise((resolve,reject)=>resolve("test"));
//所以async可以理解為生成一個promise實例。
//那么自然也可以去調用.then()
test.then((res)=>{})

await則是配合async使用的。await等于是等待一個返回值,等待async的執行結果。

async function testAsync() {
    return Promise.resolve("hello async");
}

async function test() {
    const res = await testAsync();
    console.log(res);
}

test();

輸出結果就是"hello async".
await必須配合async使用,但是await的對象可以不是Promise對象,一個普通的函數也可以使用。
如果它等到的不是一個 Promise 對象,那 await 表達式的運算結果就是它等到的東西。
如果它等到的是一個 Promise 對象,await 就忙起來了,它會阻塞后面的代碼,等著 Promise 對象 resolve,然后得到 resolve 的值,作為 await 表達式的運算結果。但是async函數不會造成阻塞,所以await配合async使用,則沒有影響到外部。

async和await的作用
可以把promise 的then寫得簡潔,便于理解
流程就是生成一個async函數,然后函數內部去await一個promise對象得運行結果,再用這個結果去調用其它得Promise對象,如此得話then((res)=>{}).then((ress)=>{})。就可以寫成

var res = await foo(); 
var ress = await fob(res);
var resss = await foc(ress)

在then鏈復雜得情況下,promise得參數傳遞非常復雜,但使用async+await得方式,就如同同步編程一般,非常清晰和流暢。

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

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/107893.html

相關文章

  • JavaScript闖關筆記

    摘要:對空數組是不會執行回調函數的。就算改變已經發生了,你再對對象添加回調函數,也會立即得到這個結果。用來表示函數是異步的,定義的函數會返回一個對象,可以使用方法添加回調函數。 介紹 通過Array/Object/Function基礎類型編寫。 看到自己不了解的或者比較新穎的用法便會寫上。 不定時更新內容。 本文首發于我的個人網站: Timbok.top 目錄 Array 迭代方法 ...

    Jokcy 評論0 收藏0
  • 重學前端學習筆記(十七)--Promise里的代碼為什么比setTimeout先執行?

    摘要:版本以及之前,本身還沒有異步執行代碼的能力,宿主環境傳遞給引擎,然后按順序執行,由宿主發起任務。采納引擎術語,把宿主發起的任務稱為宏觀任務,把引擎發起的任務稱為微觀任務。基本用法示例的回調是一個異步的執行過程。 筆記說明 重學前端是程劭非(winter)【前手機淘寶前端負責人】在極客時間開的一個專欄,每天10分鐘,重構你的前端知識體系,筆者主要整理學習過程的一些要點筆記以及感悟,完整的...

    pinecone 評論0 收藏0
  • 重學前端學習筆記(十七)--Promise里的代碼為什么比setTimeout先執行?

    摘要:版本以及之前,本身還沒有異步執行代碼的能力,宿主環境傳遞給引擎,然后按順序執行,由宿主發起任務。采納引擎術語,把宿主發起的任務稱為宏觀任務,把引擎發起的任務稱為微觀任務。基本用法示例的回調是一個異步的執行過程。 筆記說明 重學前端是程劭非(winter)【前手機淘寶前端負責人】在極客時間開的一個專欄,每天10分鐘,重構你的前端知識體系,筆者主要整理學習過程的一些要點筆記以及感悟,完整的...

    zorpan 評論0 收藏0
  • 重學前端學習筆記(十七)--Promise里的代碼為什么比setTimeout先執行?

    摘要:版本以及之前,本身還沒有異步執行代碼的能力,宿主環境傳遞給引擎,然后按順序執行,由宿主發起任務。采納引擎術語,把宿主發起的任務稱為宏觀任務,把引擎發起的任務稱為微觀任務。基本用法示例的回調是一個異步的執行過程。 筆記說明 重學前端是程劭非(winter)【前手機淘寶前端負責人】在極客時間開的一個專欄,每天10分鐘,重構你的前端知識體系,筆者主要整理學習過程的一些要點筆記以及感悟,完整的...

    xiongzenghui 評論0 收藏0

發表評論

0條評論

NoraXie

|高級講師

TA的文章

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