分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

js中的Generators函数

发布时间:2023-09-06 02:32责任编辑:林大明关键词:js

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会无视传递的valueg.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()) ?// 1console.log(g.next()) ?// 2console.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函数

原文地址:https://www.cnblogs.com/ye-hcj/p/10350984.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved