async function fun(){
console.log("2");
let a = await 7;
console.log("4");
let b = await new Promise((resolve,reject)=>{
setTimeout(function(){
resolve('setTimeout')
},3000)
})
console.log("5");
let c = await function(){
return 'function'
}()
console.log("6")
console.log(a,b,c)
console.log("8")
}
console.log("1")
fun(); // 3秒后输出: 7 "setTimeout" "function"
console.log("3")
运行结果:
1
2
3
4
出现:undefined的变量,指b
---
停3秒
----
5
6
7 'setTimeout' 'function'
8
由此可见 js(ES6标准)中async与await的运行顺序
先在此mark,改天借本书,多研究研究,详细阐述其原理(单线程,js运行栈,浏览器API,轮询机制,
由 io延迟–> 同步异步需求–>异步的几种实现方式: 回调函数 --回调地狱问题引出–>promise,then —>async+await,js异步的最终解决方案)
最近先把小程序开发完!