回答es6中await和async有什么作用

 所属分类:web前端开发

 浏览:121次-  评论: 0次-  更新时间:2022-11-01
描述:更多教程资料进入php教程获得。 es6中await和async的作用分别是:1、async用于声明一个函数是异步执行,并返回一个Promise对象;2、await用...
更多教程资料进入php教程获得。

es6中await和async的作用分别是:1、async用于声明一个函数是异步执行,并返回一个Promise对象;2、await用于等待一个异步方法执行完成,因为await只能用于async函数中,所以用于等待一个async函数的返回值。

前端(vue)入门到精通课程:进入学习
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API调试工具:点击使用

本教程操作环境:windows10系统、ECMAScript 6.0版、Dell G3电脑。

es6中await和async有什么作用

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()

【相关推荐:javascript视频教程、web前端】

以上就是es6中await和async有什么作用的详细内容,更多请关注zzsucai.com其它相关文章!

 标签: es6,
积分说明:注册即送10金币,每日签到可获得更多金币,成为VIP会员可免金币下载! 充值积分充值会员更多说明»

讨论这个素材(0)回答他人问题或分享使用心得奖励金币

〒_〒 居然一个评论都没有……

表情  文明上网,理性发言!