91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Javascript中promise,async和await的區別是什么

發布時間:2022-03-24 09:13:19 來源:億速云 閱讀:202 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“Javascript中promise,async和await的區別是什么”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Javascript中promise,async和await的區別是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

終于把promise, async, await的區別和聯系弄清楚了,看下面代碼

寫法1,2是promise的寫法

寫法6是async和await的寫法

主要看第2種寫法和第6中寫法即可, 第2種寫法是promise的典型寫法,第6中寫法是async, await的典型寫法

// 以下三個請求依次執行
req1 = () => { return fetch("http://example.com/api/v1/get")}
req2 = () => { return fetch("http://example.com/api/v1/post")}
req3 = () => { return fetch("http://example.com/api/v1/delete")}
//寫法1
req1().then(res=>{
    console.log("1: ",res)
    req2().then(res =>{
        console.log("2: ",res)
        req3().then(res =>{
            console.log("3: ",res)
        })
    })
})

// 寫法2
req1().then(res =>{
    console.log("1: ", res)
    return req2()
})
.then(res =>{
    console.log("2: ", res)
    return req3()
})
.then(res =>{
    console.log("3: ", res)
})
// 寫法3
function f1(){
    req1()
    req2()
    req3()
}
// 寫法4
async  function f2(){
    await req1
    await req2
    await req3
}
// 寫法5
async  function f3(){
    req1().then(res => {
        console.log("1:", res)
    })
    await f3_1()
}
async function f3_1(){
    req1().then(res => {
        console.log("2:", res)
    })
    await f3_2()
}
async function f3_2(){
    req2().then(res=>{
         console.log("3: ",res)
    })
}
// 寫法6
ff()
async function ff(){
    await req1_good()
}
async function req1_good(){
    fetch("http://example.com/api/v1/get").then(res =>{
        console.log("1: ",res)
    })
    await req2_good()
}
async  function req2_good() {
    fetch("http://example.com/api/v1/post").then(res =>{
        console.log("2: ",res)
    })
    await req3_good()
}
async function req3_good() {
     fetch("http://example.com/api/v1/delete").then(res => {
         console.log("3: ",res)
     })
}
  • 最外層的async函數調用之后立即返回了,但是async還是里面還是在逐層執行

  • await的作用是等待其修飾的函數內部的所有await函數都執行完畢,

  • 從最外層啟動一個async函數相當于go一個協程,await func 也相當于go 一個協程,不同在于await = go + waitgroup

  • await比promise高明的地方在于,promise在then里面調用另一個promise時,不得不return另一個promise再then, 或者在then中回調,但是await完全不需要

  • async是為了異步,await是為了異步+阻塞,缺一不可

讀到這里,這篇“Javascript中promise,async和await的區別是什么”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

弋阳县| 吴忠市| 南乐县| 云浮市| 海门市| 蒙自县| 宁陵县| 尤溪县| 额敏县| 荥阳市| 武义县| 晋中市| 宣汉县| 莱西市| 贡山| 宁波市| 延川县| 乡宁县| 盐边县| 西和县| 内丘县| 灵璧县| 萝北县| 桐乡市| 依安县| 富裕县| 阜新| 韩城市| 峨边| 永宁县| 巫山县| 孟州市| 汉沽区| 庄浪县| 望江县| 英吉沙县| 乐山市| 吴桥县| 海兴县| 桓台县| 贺州市|