定义:
async是一个通过异步执行并隐式返回Promise作为结查的函数。是Generator函数的语法糖,并对Generator函数进行了改进 ,使得异步操作更加直观和方便
1、用法
- 在函数声明的前面加上async关键字,就变成了async函数。
async function f() {
return 'hello world';
}
2、优势:
-
更加简洁易懂:async/await 使得异步操作的代码更加简洁易懂,不需要写复杂的回调函数和 Promise 链,更加符合人类的思维方式。
-
更加直观的错误处理:使用 async/await 可以使用try..catch 结构来处理异常,更加直观,而Promise 需要通过 catch 方法来处理错误信息。
-
更好的控制流程:使用 async/await 可以使得异步操作的执行流程更加清晰,易于控制,而 Promise 需要通过 then 方法进行链式调用,控制流程相对较为复杂。
-
更加方便的并发控制:使用asvnc/await 可以使用 for..of 循环进行异步操作的并发控制,而Promise 需要使用 Promise.all 或Promise.race 进行并发控制,逻辑较为复杂。
-
更加良好的兼容性:async/await 是 ES7 (ES2017) 中的新特性,目前主流浏览器和 Nodejs 版本都已经支持,具有更好的兼容性。总之,async/await 使得异步操作更加直观、简洁、昘懂、易于控制是Promise 的升级版,是一种更加优秀的异步编程解决方案。