美文网首页
async/await是generator的语法糖

async/await是generator的语法糖

作者: 每日log | 来源:发表于2020-12-25 12:05 被阅读0次

1. 什么语法糖?

维基百科给的定义:
语法糖(英语:Syntactic sugar)是由英国计算机科学家彼得·兰丁发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。语法糖让程序更加简洁,有更高的可读性。

简单说,语法糖就是改变了一种形式,这种形式让程序的书写更加简洁明了

2. 为什么说async/await是generator的语法糖?

定义一个函数fn,接受参数num

function fn(num) {
    return new Promise((resolve, reject) => {
        resolve(console.log(num))
    })
}

写一个Generator依次调用传递的参数

function *testGen(){
    fn(1)
    yield
    fn(2)
    yield
    fn(3)
}
let f = testGen()
f.next() 
f.next() 
f.next() 
// 1 2 3

async函数的写法

async function test() {
    let a = await fn(1)
    let b = await fn(2)
    let c = await fn(3)
}
test() // 1 2 3 

我们发现async函数把testGen里的*替换成 async,将 yield 替换成 await而已。所以说async/await是generator的语法糖

原文:https://mp.weixin.qq.com/s/RmslOGB6gLUHNFqY5ElQRA

下一篇:JS版数据结构-栈

相关文章

  • async/await

    async/await async/await 是Generator的语法糖。 Generator 通过将Gene...

  • async/await的深究

    我们都知道async/await是Generator函数的语法糖,为了更加深刻的了解async/await的原理,...

  • async await详解

    async await本身就是promise + generator的语法糖。 本文主要讲述以下内容 async ...

  • 走过路过, async + await 了解一下

    async + await 是generator的语法糖,generator已经不直接用啦,所以你需要了解的,就是...

  • es7-async函数

    async函数是Generator函数的语法糖。async 表示函数里面有异步操作;await 表示紧跟后面的...

  • async await

    async/await是什么 async是Generator的语法糖基本上async替代Generator函数声明...

  • async/await 怎么用,如何捕获异常?

    async函数是Generator函数的语法糖。使用 关键字async来表示,在函数内部使用await来表示异步。...

  • async-await

    一、async-await和Promise的关系 async-await是promise和generator的语法...

  • async

    async是什么?说白了就是Generator的语法糖把*换成async,把yield换成await罢了 但他还是...

  • async await使用

    async 函数是什么?一句话,它就是 Generator 函数的语法糖。 async/await是写异步代码的新...

网友评论

      本文标题:async/await是generator的语法糖

      本文链接:https://www.haomeiwen.com/subject/rhbbnktx.html