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介绍与填坑

后续补充

...

猜你喜欢

转载自blog.csdn.net/william_n/article/details/106672844