JavaScript - async/await 學習/使用 - 採坑

1.應用場景

主要用於異步編程, 用於前端[JavaScript], 後端[nodeJS]

2.學習/操作

1.介紹

ES2017 標準引入了 async 函數,使得異步操作變得更加方便。

async 函數是什麼?一句話,它就是 Generator 函數的語法糖。

 

2.學習

https://es6.ruanyifeng.com/#docs/async  //阮一峯 - async 函數

https://time.geekbang.org/column/article/137827

 

3.思考

用同步風格代碼實現異步任務.

 

後續補充

...

3.問題/補充

採坑記錄

1.總是報 "SyntaxError: await is only valid in async function"

await必須在async的上下文中

await 並不只是使用在async 函數中即可,還必須在asyn函數的上下文中

// 雖在async函數裏使用,但在forEach上下文中,異常
async function errorDemo() {
    [1, 2, 3, 4, 5].forEach(item => {
        await item;
    });
}
errorDemo() // SyntaxError: await is only valid in async function
// await 必須在async函數的上下文中
async function correctDemo() {
    let arr = [1, 2, 3, 4, 5];
    for (let i = 0; i < arr.length; i ++) {
        await arr[i];
    }
}

改寫之後: //之後使用forEach()遍歷數組,出現報錯

 

2. await 關鍵字必須用在async函數主體中,不能直接用在腳本函數之外.

 

 

後續補充

...

4.參考

https://www.jianshu.com/p/e511be9c1280  //異步神器Async-await介紹與填坑

後續補充

...

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章