欢迎光临
我们一直在努力

JavaScript | 面试async及await

涉及面试题:async 及 await 的特点,它们的优点和缺点分别是什么?await 原理是什么?

一个函数如果加上async,那么该函数就会返回一个Promise

async function test() {
    return "1"
}
console.log(test()) // -> Promise {<resolved>:"1"}

async就是将函数返回值使用Promise.resolve()包裹了下,和then中处理返回值一样,并且await只能配套async使用。

async function test() {
    let value = await sleep()
}

async 和 await 可以说是异步终极解决方案了,相比直接使用 Promise 来说,优势在于处理 then的调用链,能够更清晰准确的写出代码,毕竟写一大堆 then 也很恶心,并且也能优雅地解决回调地狱问题。当然也存在一些缺点,因为 await 将异步代码改造成了同步代码,如果多个异步代码没有依赖性却使用了 await 会导致性能上的降低。

async function test() {
    // 以下代码没有依赖性的话,完全可以使用 Promise.all 的方式
    // 如果有依赖性的话,其实就是解决回调地狱的例子了
    await fetch(url)
    await fetch(url1)
    await fetch(url2)
}

更多Promise实例,建议阅读下面的文章:

赞(0) 打赏
未经允许不得转载:散人研 » JavaScript | 面试async及await
分享到: 更多 (0)

评论 抢沙发

4 + 5 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏