JavaScript · 单选题 · 第 17 题
前端与全栈开发面试 · 第 17 题
关于 async 函数,下列说法正确的是?
- A它直接返回 return 后面的原始值,不会包装成 Promise 对象
- B它返回一个生成器对象,需要手动调用 next() 才会继续往下执行
- C它总是返回一个 Promise,return 的值会作为这个 Promise 的结果
- Dawait 会阻塞整个 JavaScript 线程,直到等待的 Promise 完成为止
答案
C C. 它总是返回一个 Promise,return 的值会作为这个 Promise 的结果
解析
async 函数里 return 的值会被包装成已兑现的 Promise,抛出的异常会变成被拒绝的 Promise。await 只是暂停当前这个 async 函数,把后续代码作为微任务安排执行,线程可以继续处理其他任务。多个互不依赖的异步操作应当用 Promise.all 并发,避免逐个 await 串行等待。