你必须知道的,async/await 实现异步流程控制

本文介绍了async/await的使用,它们是Generator yield的语法糖。async关键字用于定义返回Promise的函数,而await则用于等待Promise的结果,实现异步控制。通过示例代码解释了await如何阻塞执行并处理Promise的结果,同时也指出await后面不仅可以跟Promise对象,还可以是其他类型,但处理方式会有所不同。最后提供了一个例子展示了如何通过async/await实现异步任务的顺序执行。
async/await

async其实是ES7的才有的关键字,放在这里说,其实是和我们前面所说的Promise,Generator有很大关联的。async的意思是"异步",顾名思义是有关异步操作有关的关键字。
而且 async/await 是Generator yield 的语法糖
具体参考 阮老师的 es6入门

  • 我们这里就展示一下async/await的实际作用
async
const helloFn = async () => {
   
   
	return "helloAsync"
}
console.log(helloFn)//Promise {<resolved>: "helloAsync"}

可以看到 经过async 包装后的函数 返回一个promise 对象
既然是返回的Promise对象,我们就是用then方法来处理。

const helloFn = async () => {
   
   
	return "helloAsync"
}
helloFn ()
.then(s => {
   
   
	console.log(s)//helloAsync
})

是不是很简单,就是一个promise 而已是如何实现 异步控制的呢?

await

在Generator中yield关键字,yield关键字只能使用在Generator函数中,同样,await关键字也不能单独使用,是需要使用在async方法中。 await字面意思是"等待",那它是在等什么呢?它是在等待后面表达式的执行结果。

  • 请看下面这段示例代码,我们用定时器来模拟异步的情况
function testAwait(){
   
   
   return new Promise((resolve) => {
   
   
          setTimeout
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值