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) => {