美文网首页
Generator和async await

Generator和async await

作者: 月肃生 | 来源:发表于2018-09-11 23:58 被阅读13次

   es6提供的这两玩意,看明白了,用着用着又糊涂了....
    下面就几个例子讲一下

示例1

async function a(){
    await setTimeout('console.log(1)', 1000)
    console.log(2)
}

输出结果

2
1

示例2

async function a(){
    await new Promise(resolve=>{
      setTimeout(()=>{
        console.log(1);
        resolve()
       }, 1000)
    })
    console.log(2)
}

输出结果

1
2

总结

    之前没仔细看文档,老感觉为啥promise的setTimeout能阻塞执行,而直接setTimeout不行。

  • yield命令后面只能是 Thunk 函数或 Promise 对象
  • async函数的await命令后面,可以是 Promise 对象和原始类型的值(数值、字符串和布尔值,但这时等同于同步操作)

    async是Generator的语法糖,进一步说,async函数完全可以看作多个异步操作,包装成的一个 Promise 对象,而await命令就是内部then命令的语法糖。
    这么解释一下感觉就清晰多了。

相关文章

  • async/await

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

  • async-await

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

  • async await

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

  • Generator 与 异步函数处理方式(待续)

    关键字: generator await async 异步

  • async/await的深究

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

  • 回调地狱终结者

    Promise、Generator、Async/Await 回调地狱终结者

  • fetch 和 ajax 和 axios

    fetch: 基于promise,Promise,generator/yield,await/async 都是现在...

  • 实现异步的5种方式

    callback Promise Generator async/await 发布订阅 Promise、Gener...

  • Generator和async await

    es6提供的这两玩意,看明白了,用着用着又糊涂了....下面就几个例子讲一下 示例1 输出结果 示例2 输出结果 ...

  • async await详解

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

网友评论

      本文标题:Generator和async await

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