zoukankan      html  css  js  c++  java
  • ES6(Generator)

      Generator

    1.基本概念

    异步编程的一种解决方案

    2.next 函数的用法

    见代码

    3.yield* 的用法

    见代码

    一、基本定义

    2.使用 Generator 作为遍历器的返回值

    通过 Generator 函数的方式

    3.状态机

    有 A B C 三种状态去描述一个事物,A-B、B-C、C-A,永远不会与第四种状态,用 Generator 处理这种状态机是特别适用的。

     

    1.调用 let 方法运行第一个 yield  2.next 到 yield 'B'  3.再next 到 yield ‘C’ 4.应为是 while(1),所以又回到 Yield 'A'.

    通过这种方式即可不断的获取状态机当前的状态

    2.async

    async 是 Generator 的语法糖(结果与上述相同)

    二、实例

    1.抽奖(次数限制)

    while (count>0)   (对抽奖次数的限制)

    yield draw(count)  (具体的操作逻辑)

     let star =residue(5)   (将 Generator 实例化,实际中的参数应为后台传输来的)

    结果:

      

      

      

      

       (继续点击无用,不再执行)

    2.长轮询

    服务端的某个服务状态定期变化,前端需要定时获取这个服务端状态,应为 http 是无状态的,不知道其连接,实时取到这种服务器变化有两种方式:

    1.长轮询

    2.wordsocket(不常用)

     实例:

    1.模拟 ajax 过程

    2.轮询过程(执行后端通信)

    结果:

    若服务端返回数据为 1

     

    则结果:

       ....

    不断轮询

  • 相关阅读:
    D2. Remove the Substring (hard version)(思维 )
    暑假集训
    AcWing:167. 木棒(dfs + 剪枝)
    AcWing:109. 天才ACM(倍增 + 归并排序)
    AcWing:99. 激光炸弹(前缀和)
    B. Interesting Array(线段树)
    Best Reward HDU
    G. Swapping Places
    How many HDU
    GSS4&&花仔游历各国
  • 原文地址:https://www.cnblogs.com/jianghao233/p/8975229.html
Copyright © 2011-2022 走看看