js中的Generators函数

  1. generator一般操作

    generator函数的作用就是函数体分段执行,yield表示分隔点
    function *test() {
    console.log(1);
    yield 1;
    console.log(2);
    yield 2;
    console.log(3);
    yield 3;
    } var g = test(); console.log(g.next()) // { value: 1, done: false }
    console.log(g.return(2)) // { value: 2, done: true },return不执行任何函数体,直接结束函数执行
    console.log(g.next()) // { value: undefined, done: true }
  2. 捕获异常

    function *test() {
    try {
    yield 1;
    yield 2;
    } catch (error) {
    console.log(error.message);
    }
    } var g = test(); console.log(g.next())
    console.log(g.throw(new Error("Error"))) // { value: undefined, done: true } 捕获异常,同时结束函数执行
    console.log(g.next())
  3. 传递值给generator函数

    function *test() {
    var s;
    s = yield;
    console.log(s);
    s = yield;
    console.log(s);
    } var g = test(); g.next(); // 第一次调用next会无视传递的value
    g.next(1); // 第二次传递value现在才有用
  4. yield代理到其他的generator函数

    function *test() {
    yield 1;
    yield *other();
    } function *other() {
    yield 2;
    yield 3;
    }
    var g = test(); console.log(g.next()) // 1
    console.log(g.next()) // 2
    console.log(g.next()) // 3
  5. 遍历generator函数

    function *test() {
    yield 1;
    yield 2;
    yield 3;
    } for(let item of test()) {
    console.log(item);
    } // 1 2 3

js中的Generators函数的更多相关文章

  1. js中的回调函数的理解和使用方法

    js中的回调函数的理解和使用方法 一. 回调函数的作用 js代码会至上而下一条线执行下去,但是有时候我们需要等到一个操作结束之后再进行下一个操作,这时候就需要用到回调函数. 二. 回调函数的解释 因为 ...

  2. underscore.js中的节流函数debounce及trottle

    函数节流   throttle and debounce的相关总结及想法 一开始函数节流的使用场景是:放止一个按钮多次点击多次触发一个功能函数,所以做了一个clearTimeout setTimeou ...

  3. js中如何在一个函数里面执行另一个函数

    1.js中如何在函数a里面执行函数b function a(参数c){ b(); } function b(参数c){ } 方法2: <script type="text/javasc ...

  4. JavaScript -- 时光流逝(七):js中的全局函数

    JavaScript -- 知识点回顾篇(七):js中的全局函数 全局函数可用于所有内建的 JavaScript 对象. (1) encodeURI():把字符串编码为 URI. <script ...

  5. js中的匿名函数和匿名自执行函数

    1.匿名函数的常见场景 js中的匿名函数是一种很常见的函数类型,比较常见的场景:   <input type="button" value="点击" id ...

  6. JS中关于把函数作为另一函数的参数的几点小总结

    //JS中关于把函数作为函数的参数来传递的问题的小总结//第一,最简单的形式无参函数,直接形式函数的函数名放到括号中,再在执行部分这个函数即可.//当然调用时要穿另一个真正的定义好的函数/*funct ...

  7. JS中的回调函数实例浅析

    本文实例讲述了JS中的回调函数.分享给大家供大家参考,具体如下: 在说回调函数之前,不妨先看一段代码,相信有点js基础的同学都能明白他的含义: ? 1 2 3 document.getElementB ...

  8. js中关于事件处理函数名后面是否带括号的问题

    今天总结一个关于事件处理程序的小细节.首先回顾一下事件处理的一些概念. JS中的事件处理(事件绑定)就是让某种或某些事件触发某些活动.有两种常见的形式,分别是DOM Level 0 和DOM Leve ...

  9. js中的匿名函数自执行

    随笔,java中因为有修饰符的存在,那就有private类的存在,js不一样,没有修饰词一说,因此为了防止全局变量的污染,js中就出现了匿名函数,直接上code,看到的人可以自己体会: (functi ...

随机推荐

  1. python fire库的使用

    一. 介绍 fire是python中用于生成命令行界面(Command Line Interfaces, CLIs)的工具,不需要做任何额外的工作,只需要从主模块中调用fire.Fire(),它会自动 ...

  2. 【scala】基础类型

    基础类型                              位数 Boolean                                 - Byte                 ...

  3. 【lightoj-1055】Going Together(BFS)

    链接:http://www.lightoj.com/volume_showproblem.php?problem=1055 类似推箱子的游戏,一条命令可以让abc三个小人同时移动,但是出界或者撞墙是不 ...

  4. Android性能优化系列总篇

    目前性能优化专题已完成以下部分: 性能优化总纲——性能问题及性能调优方式 性能优化第四篇——移动网络优化 性能优化第三篇——Java(Android)代码优化 性能优化第二篇——布局优化 性能优化第一 ...

  5. react: typescript-webpack项目基本配置

    1.webpack.config.js basic const webpack = require('webpack'); const autoprefixer = require('autopref ...

  6. react use axios拦截器

    import axios from 'axios'; improt Promise from 'es6-promise'; Promise.polyfill(); const axiosService ...

  7. 程序员们,AI来了,机会来了,危机也来了

    程序员们,AI来了,机会来了,危机也来了 1.人工智能真的来了 纵观古今,很少有计算机技术能有较长的发展寿命,大部分昙花一现,比如:昔日的DOS.windows3.2.foxpro.delphi.80 ...

  8. web service(转载)

    原文引自:http://blog.csdn.net/wooshn/article/details/8069087 WebService到底是什么? 一言以蔽之:WebService是一种跨编程语言和跨 ...

  9. (五)java进制

    进制 整数的表示 十进制:   0-9,  满10进1 八进制:   0-7,  满8进1,以0开头 每三位表示一位,三位数中最大的是111,111是7,7是八进制中最大的基数 十六进制:0-15,满 ...

  10. rebar自定义template

    在开发过程中rebar自带模板建立项目,或多或少不能满足自己的开发需求.本人又是那种懒人,所以就要想办法偷懒.查看了priv模板 打造适合自己的项目模板.下面我简单的介绍整个模板的打造过程. 准备过程 ...