说说async原理?【专栏16】
前端人
共 1291字,需浏览 3分钟
·
2021-07-11 13:12
提到async就必须要提Generator了,因为async函数是Generator函数的语法糖,将Generator的星号换成async将yield换成await
Generator是一个函数,可以在函数内部通过yield返回一个值(此时,Generator函数的执行会暂定,直到下次触发.next())
创建一个Generator函数的方法是在function关键字后添加*标识。
在调用一个Generator函数后,并不会立即执行其中的代码,函数会返回一个Generator对象,通过调用对象的next函数,可以获得yield/return的返回值。
无论是触发了yield还是return,next()函数总会返回一个带有value和done属性的对象。value为返回值,done则是一个Boolean对象,用来标识Generator是否还能继续提供返回值。
Generator基本使用
const getUserName=()=>{
return "鬼鬼"
}
const getUserAge=()=>{
return 18
}
function* getUserInfo(){
yield getUserName()
yield getUserAge()
}
const info = getUserInfo();
console.log(info.next().value); // 鬼鬼
console.log(info.next().value); // 18
async原理
1.相比起Generator,async和await 语义更清晰 2.await必须在async函数里使用,不能单独使用; 3.await后面需要跟Promise对象,不然就没有意义 4.await它会暂停原异步函数的执行,并等待右侧Promise返回结果 5.async 默认返回一个Promise函数
const getUserInfo=async ()=> {
return "鬼鬼"
}
getUserInfo()
参考资料
https://cnblogs.com/jiasm/p/8999111.html https://developer.mozilla.org/
说明
本专栏总共汇总了150
道题,每道题目答案没有多余扯皮的部分,就是单纯的答案。
关注公众号,每天一到面试题,为下次跳槽准备,人人都能冲击30k+
,点击↓关注【鬼哥
】
当前进度【#016题
】,如果你能点赞分享、鬼哥骑自行车也是开心的
评论