关于javascript:promise和async-await的区别

4次阅读

共计 582 个字符,预计需要花费 2 分钟才能阅读完成。

首先说说两者的概念
Promise
Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更正当和更弱小,简略地说,Promise 好比容器,外面寄存着一些将来才会执行结束(异步)的事件的后果,而这些后果一旦生成是无奈扭转的

async await
async await 也是异步编程的一种解决方案,他遵循的是 Generator 函数的语法糖,他领有内置执行器,不须要额定的调用间接会主动执行并输入后果,它返回的是一个 Promise 对象。

两者的次要用法、语法就不赘述了,感兴趣的同学能够自行查阅 es6 中文文档

两者的区别
Promise 的呈现解决了传统 callback 函数导致的“地区回调”问题,但它的语法导致了它向纵向倒退行成了一个回调链,遇到简单的业务场景,这样的语法显然也是不美观的。而 async await 代码看起来会简洁些,使得异步代码看起来像同步代码,await 的实质是能够提供等同于”同步成果“的期待异步返回能力的语法糖,只有这一句代码执行完,才会执行下一句。

async await 与 Promise 一样,是非阻塞的。

async await 是基于 Promise 实现的,能够说是改良版的 Promise,它不能用于一般的回调函数。

简略来看,这两者除了语法糖不一样外,他们解决的问题、达到的成果是大同小异的,咱们能够在不同的利用场景,依据本人的爱好来抉择应用。

正文完
 0