async与await(Async and Await)
缩写:无
简述
用同步外观编写异步控制流的语法:async 标记异步函数,await 等待期约类结果并在完成前让出执行。降低回调嵌套,但并不自动创造线程,语义仍建立在异步运行时之上。
使用场景
顺序依赖的 IO 链、服务编排、UI 异步逻辑。
实践与应用
示意(顺序等待;可并行时勿无谓串行 await):
a = await fetchA()
b = await fetchB() // 依赖 a 时才串行
// 独立时: (a, b) = await all(fetchA(), fetchB())
• 可并行的 await 不要无谓串行
• 贯通取消令牌
• 区分异步函数与普通函数的调用约定
注意事项
• 在循环中错误串行 await
• 死锁式同步阻塞等待异步
关联术语
• 期约:await 所等待的对象类型(或等价物)
• 异步:该语法所表达的执行风格
• 事件循环:许多运行时调度 async 的基础
• 取消 / 超时:编排异步时必须贯通的策略