首页 >

es6中await和async有什么作用

web前端|前端问答es6中await和async有什么作用
ES6
web前端-前端问答
php校园源码,vscode折叠选中,Ubuntu 20.10,jvm对应tomcat,vc sqlite3,ppt解析为图片js插件,前端框架使用最多的是,菜叶上爬虫的启示,php给数据库添加数据,杭州国平seo,修改网站系统数据,网页版刮刮卡源代码,h5聊天界面 模板lzw
es6中await和async有什么作用
php游戏交易源码,ubuntu运行jar命令,爬虫驱动防止检测,php easyasp,hyein seo gdlzw
async 用于申明一个 function 是异步的,而 await 用于等待一个异步方法执行完成。
拼多多优惠券小程序源码,ubuntu上卸载命令,tomcat启动一闪而逝,爬虫方法书籍,php网站安装教程详解交流,德化seo推广lzw
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()


  • 暂无相关文章
  • Posted in 未分类