大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
今天小编给大家分享一下es6中await和async有哪些作用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
创新互联建站主营北海网站建设的网络公司,主营网站建设方案,重庆App定制开发,北海h5小程序开发搭建,北海网站营销推广欢迎北海等地区企业咨询
es6中await和async的作用分别是:1、async用于声明一个函数是异步执行,并返回一个Promise对象;2、await用于等待一个异步方法执行完成,因为await只能用于async函数中,所以用于等待一个async函数的返回值。
本教程操作环境:windows10系统、ECMAScript 6.0版、Dell G3电脑。
async 用于申明一个 function 是异步的,而 await 用于等待一个异步方法执行完成。
await只能放在async函数里
await后面接一个会return new promise的函数并执行它。
在遇到await时,会阻塞后面的代码,先执行async外面的同步代码,
如果等待的是promise,等Promise完成,然后把 resolve 的参数作为 await 表达式的运算结果。
如果等待的是表达式,执行完async外面同步代码后再回来继续往下执行
async
async 函数(包含函数语句、函数表达式、Lambda表达式)会返回一个 Promise 对象。
如果在函数中 return 一个直接量,async 会把这个直接量通过 Promise.resolve() 封装成 Promise 对象。
如果 async 函数没有返回值,又该如何?很容易想到,它会返回 Promise.resolve(undefined)。
Promise 的特点——无等待,所以在没有 await 的情况下执行 async 函数,它会立即执行,返回一个 Promise 对象,并且,绝不会阻塞后面的语句。这和普通返回 Promise 对象的函数并无二致。
await
一般来说,都认为 await 是在等待一个 async 函数完成。不过按语法说明,await 等待的是一个表达式,这个表达式的计算结果是 Promise 对象或者其它值(换句话说,就是没有特殊限定)。
因为 async 函数返回一个 Promise 对象,所以 await 可以用于等待一个 async 函数的返回值,即promise的resolve(这里的值)。
await 不仅仅用于等 Promise 对象,它可以等任意表达式的结果,所以,await 后面实际是可以接普通函数调用或者直接量的。
如果它等到的不是一个 Promise 对象,那 await 表达式的运算结果就是它等到的东西。
为什么要用await
为了使我们的异步代码,更像同步的代码
有多个promise,怎么拿到所有的promise都结束后的结果
因为Promise.all()返回的也是一个promise所以如果要使用await拿到多个promise的值,可以直接await Promise.all()
以上就是“es6中await和async有哪些作用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注创新互联行业资讯频道。