WebMD
本页大纲

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 的基础
• 取消 / 超时:编排异步时必须贯通的策略