Promise和Async有什么区别?

您所在的位置:网站首页 函数调用方式有哪两种两者有什么不同 Promise和Async有什么区别?

Promise和Async有什么区别?

2023-10-14 13:30| 来源: 网络整理| 查看: 265

Promise和Async有什么区别?

概念:

Promise 是异步编程的一种解决方案,主要是为了解决"回调地狱"问题,有三种状态(pending/fulfilled/rejected),对象状态不受外界影响,一旦状态改变就不会变化。 async/await 也是异步编程的一种解决方案,基于Promise实现的,返回的是一个Promise对象。

区别:

promise.then属于微任务,会放到相应宏任务的微任务队列里,等宏任务里面的同步代码执行完再执行; async函数返回一个 Promise 对象,可以使用then方法添加回调函数。async函数表示函数里面可能会有异步方法,await后面跟一个表达式。当async函数执行的时候,一旦遇到await就会先返回,遇到await会立即执行表达式,然后把表达式后面的代码放到微任务队列里,等到异步操作完成,再接着执行函数体内后面的语句。

Promise和Async都能解决相同的问题,可以根据不同场景选择。Promise可以一直异步链式调用,Async/await对比就比较简洁。

附:

awiat的含义是等待,即async的函数需要等待await后的函数执行完成并且有了返回结果(Promise对象)之后,才能继续执行下面的代码,await通过返回一个Promise对象来实现同步的效果。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3