星海

JavaScript · 单选题 · 第 17 题

前端与全栈开发面试 · 第 17 题

关于 async 函数,下列说法正确的是?

  1. A它直接返回 return 后面的原始值,不会包装成 Promise 对象
  2. B它返回一个生成器对象,需要手动调用 next() 才会继续往下执行
  3. C它总是返回一个 Promise,return 的值会作为这个 Promise 的结果
  4. Dawait 会阻塞整个 JavaScript 线程,直到等待的 Promise 完成为止

答案

C C. 它总是返回一个 Promise,return 的值会作为这个 Promise 的结果

解析

async 函数里 return 的值会被包装成已兑现的 Promise,抛出的异常会变成被拒绝的 Promise。await 只是暂停当前这个 async 函数,把后续代码作为微任务安排执行,线程可以继续处理其他任务。多个互不依赖的异步操作应当用 Promise.all 并发,避免逐个 await 串行等待。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。