关于JavaScript 的 Async/Await
2018-04-03 11:39
691 查看
在了解本题之前,相信我们一定知道
下面我们来看看什么是
自动把函数转换为
当调用异步函数时,函数返回值会被 resolve 处理
异步函数内部可以使用
Await - 暂停异步函数的执行 (var result = await someAsyncCall();)
当使用在
不会。
多个异步函数同时执行时,需要借助
每次遇到
函数总耗时为 4 秒(
在 Async/Await 语法中,我们可以使用 try/catch 进行错误处理。在 Promise 中的 .catch() 分支会进入 catch 语句。
原文来自:https://cnodejs.org/topic/59f98fadb25adcba6676868a
callback和
Promise了,若不了解建议先去了解这两项。
下面我们来看看什么是
Async/Await?
Async - 定义异步函数(async function someName(){...})
自动把函数转换为
Promise
当调用异步函数时,函数返回值会被 resolve 处理
异步函数内部可以使用
await
Await - 暂停异步函数的执行 (var result = await someAsyncCall();)
当使用在
Promise前面时,
await等待
Promise完成,并返回
Promise的结果
await只能和
Promise一起使用,不能和
callback一起使用
await只能用在
async函数中
Async/Await是否会取代
Promise
不会。
Async/Await底层依然使用了
Promise。
多个异步函数同时执行时,需要借助
Promise.all
async function getABC() { let A = await getValueA(); // getValueA 花费 2 秒 let B = await getValueB(); // getValueA 花费 4 秒 let C = await getValueC(); // getValueA 花费 3 秒 return A*B*C; }
每次遇到
await关键字时,
Promise都会停下在,一直到运行结束,所以总共花费是 2+4+3 = 9 秒。
await把异步变成了同步。
async function getABC() { // Promise.all() 允许同时执行所有的异步函数 let results = await Promise.all([ getValueA, getValueB, getValueC ]); return results.reduce((total,value) => total * value); }
函数总耗时为 4 秒(
getValueB的耗时)。
Async/Await的错误处理
在 Async/Await 语法中,我们可以使用 try/catch 进行错误处理。在 Promise 中的 .catch() 分支会进入 catch 语句。
原文来自:https://cnodejs.org/topic/59f98fadb25adcba6676868a
相关文章推荐
- 关于JavaScript 的 async/await
- 关于JavaScript 的 async/await
- 关于JavaScript 的 async/await
- JavaScript 异步方案 async/await
- Javascript中的async await_0
- 关于 ASP.NET Web 应用中 async/await 注意问题
- Javascript中的async await
- Testing Your Smart Contracts With JavaScript (Including Async/Await Promises)
- 理解 JavaScript 的 async/await
- Javascript中的async await_0
- JavaScript 的 async/await
- javascript 异步解决方案async/await的认识与总结
- 关于async和await的一些误区实例详解
- 关于async和await的一些误区实例详解
- JavaScript从回调地狱到async/await 发展的四个阶段
- Nodejs学习(6)关于await和async
- Javascript中的async await
- 「大概可能也许是」目前最好的 JavaScript 异步方案 async/await
- [转] Understanding JavaScript’s async await
- Javascript中的async await