当前位置: 首页 > news >正文

ES8——Generator函数的使用

babel工具插件下载:npm i --save babel-polyfill
引入:polyfill.js进行转码(es8->es5)

介绍

  • Generator函数用于生成迭代器
    function * (){}
    • yeild: 作用同return类似
    {const obj = function* () {yield "a";yield 123;};const fn = obj();console.log(fn.next()); // {value: 'a', done: false}console.log(fn.next()); console.log(fn.next()); // {value: undefined, done: true}
    }
    

使用场景

  • 遍历对象属性
{let obj = {name: "jacak",age: 15,phone: 12345678,};obj[Symbol.iterator] = function* () {for (const key of Object.keys(obj)) {yield obj[key];}};for (const val of obj) {console.log(val); // jacak 15 12345678}
}
  • 保持有限个状态
{const status = function* () {while (1) {yield "success";yield "fail";yield "waiting";}};let fn = status();console.log(fn.next());console.log(fn.next());console.log(fn.next());console.log(fn.next());console.log(fn.next());
}

在这里插入图片描述

  • 自动查询支付状态
// 查询支付状态function payState() {return new Promise((res) => {setTimeout(() => {console.log("正在查询...");res({ code: -1 });}, 1000);});}// generator迭代,获取支付状态const getPayState = function* () {yield payState();};function autoQuery() {const it = getPayState();const state = it.next();state.value.then((res) => {if (res.code == 0) {console.log("支付成功");} else {console.log("支付失败...");setTimeout(() => autoQuery(), 500);}});}autoQuery();

在这里插入图片描述

在这里插入图片描述

  • 可以使异步任务按照同步顺序执行
{const ajax = function* () {console.log("任务开始");yield function (fun) {setTimeout(() => {console.log("异步任务执行");fun && fun();}, 2000);};};let fn = ajax();let sn = fn.next();sn.value(() => fn.next());
}

相关文章:

ES8——Generator函数的使用

babel工具插件下载:npm i --save babel-polyfill 引入:polyfill.js进行转码(es8->es5) 介绍 Generator函数用于生成迭代器 function * (){} yeild: 作用同return类似 {const obj function* () {yield "a";yield 12…...

德馨食品冲刺A股上市:计划募资9亿元,林志勇为实际控制人

近日,浙江德馨食品科技股份有限公司(下称“德馨食品”或“德馨饮料”)预披露更新招股书,准备在上海证券交易所主板上市。据贝多财经了解,德馨食品于2022年7月5日递交上市申请,安信证券为其保荐机构。 本次…...

湿敏电阻的原理,结构,分类与应用总结

🏡《总目录》 0,概述 湿敏电阻是指电阻值随着环境的湿度变化而变化的电阻,本文对其工作原理,结构,分类和应用场景进行总结。 1,工作原理 湿敏电阻是利用湿敏材料制成的,湿敏材料吸收空气中水分时,自身的阻值发生变化。 2,结构 如下图所示,市民电阻包括4个部分构成,…...

千锋教育嵌入式物联网教程之系统编程篇学习-03

目录 进程的终止 exit函数 _exit函数 进程退出清理 进程间的替换 进程间通信 常见通信机制 进程间通信的实质 信号 产生信号的方式 信号的默认处理方式 进程对信号的处理方式 kill函数 进程的终止 使用exit函数对进程进行终止,而return只是结束函数&a…...

升级到https

现在很多站长都会考虑将自己的站点从http升级到https,不仅是基于安全的考虑,有的也是因为第三方平台的限制,如谷歌浏览器会将http站点标记为不安全的站点,微信平台要求接入的微信小程序必须使用https等。 那如何将一个http站点升…...

【C语言】数据结构-二叉树

主页:114514的代码大冒险 qq:2188956112(欢迎小伙伴呀hi✿(。◕ᴗ◕。)✿ ) Gitee:庄嘉豪 (zhuang-jiahaoxxx) - Gitee.com 引入 我们之前已经学过线性数据结构,今天我们将介绍非线性数据结构----树 树是一种非线性的…...

c++中std::condition_variable最全用法归纳

前言 建议阅读以下文章前需先对建立 std::thread 多线程与std::mutex 锁有一定程度的熟悉 std::thread最全用法归纳 std::mutex最全用法归纳 概括 使用 std::condition_variable 的 wait 会把目前的线程 thread 停下来并且等候事件通知,而在另一个线程中可以使用…...

Python数据可视化:数据关系图表可视化

目录 1、散点图 1.1、趋势显示的二维散点图 1.2、分布显示的二维散点图 1.3、散点曲线图...

Urho3D约定

Urho3D使用以下约定和原则: 左手坐标系。正X、Y和Z轴指向右侧、上方和前方,正旋转为顺时针。度用于角度。顺时针顶点定义正面。音频音量指定为0.0(静音)到1.0(全音量)路径名使用斜杠而不是反斜杠。调用操作…...

python数据结构-列表,元组

列表 列表是Python中最通用的数据类型,可以写成方括号之间的逗号分隔值(项目)列表。 使用列表的重要事项是,列表中的项目不必是相同的类型。也就是说一个列表中的项目(元素)可以是数字,字符串,数组,字典等甚至是列表类…...

Properties类读配置文件、修改配置文件

Properties类简介(1)Properties类是专门用于读写配置文件的集合类(2)配置文件的后缀名为.properties,内容格式为:# 可以用“#”作为注释 键值 键值**注意:**键值对不需要有空格,值不需要用引号一起来。默认类型是String。键、值不可以是null(3)Properties类的方法可查找api文档…...

图解LeetCode——剑指 Offer 24. 反转链表

一、题目 定义一个函数&#xff0c;输入一个链表的头节点&#xff0c;反转该链表并输出反转后链表的头节点。 二、示例 示例: 【输入】 1->2->3->4->5->NULL 【输出】 5->4->3->2->1->NULL 限制&#xff1a; 0 < 节点个数 < 5000 三、…...

【C语言】“指针的运算”、“指针与数组”

文章目录一、指针运算1.指针 - 整数2.指针-指针3.指针关系运算二、指针与数组三、二级指针四、指针数组完结一、指针运算 指针可以进行整数&#xff0c;指针-指针&#xff0c;还有关系运算&#xff0c;其他的运算会被编译器阻止。 1.指针 - 整数 对指针进行的时候一定要注意不…...

Linux高级命令之查找文件命令

查找文件命令学习目标能够说出查找文件使用的命令1. find命令及选项的使用命令说明find在指定目录下查找文件(包括目录)find命令选项:选项说明-name根据文件名(包括目录名)字查找find命令及选项的效果图:2. find命令结合通配符的使用通配符:是一种特殊语句&#xff0c;主要有星…...

PyCharm+Docker:打造最舒适的深度学习炼丹炉

九、PyCharmDocker&#xff1a;打造最舒适的深度学习炼丹炉 安装docker&#xff1a; 如何在 Ubuntu 22.04 LTS 中安装 Docker 和 Docker Compose https://zhuanlan.zhihu.com/p/547169542 修改Linux硬盘卷标&#xff1a; ntfs文件系统&#xff1a;https://blog.csdn.net/n…...

【mock】手把手带你用mock写自定义接口+mock常用语法

mock自定义接口完整流程 官网语法规范:https://github.com/nuysoft/Mock/wiki/Syntax-Specification 首先: 要有一个项目,我这里是vue3项目,以下从vue3项目搭建开始,已搭建好的请直接看2 1.空目录下新建vue3项目 运行创建项目命令&#xff1a; 在bash中:(文件路径处输入cm…...

2023 年腾讯云服务器CVM快速配置购买教程,新手上云必备!

腾讯云服务器快速配置购买教程是新手必备的上云教程。主机教程网在本文中以腾讯云服务器为例&#xff0c;给大家带来一个完整的、手把手教学的服务器购买流程。助力快速完成服务器的购买、配置、以及网站的搭建&#xff0c;给新手节省宝贵的时间&#xff0c;避免采坑&#xff0…...

opencv显示图像

大家好&#xff0c;我是csdn的博主&#xff1a;lqj_本人 这是我的个人博客主页&#xff1a; lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…...

C++:类和对象(中)

文章目录1 类的6个默认成员函数2 构造函数2.1 概念2.2 特性3 析构函数3.1 概念3.2 特性4 拷贝构造函数4.1 概念4.2 特性5 赋值运算符重载5.1 运算符重载5.2 赋值运算符重载5.3 前置重载和后置重载6 日期类的实现7 const成员8 取地址及const取地址操作符重载1 类的6个默认成员函…...

53. 最大子数组和

文章目录题目描述暴力法动态规划法分治法参考文献题目描述 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组 是数组中的一个连续部分。 示例 1&#xff1a; 输入&…...

某恶意软件样本逆向分析报告

1.概述样本来源&#xff1a;微步在线恶意软件名称&#xff1a;刘文博-关于北京体彩中心的问题反馈.exesha256&#xff1a;c28d23d8658abc1f5683c6b50239d5593eb7a274a3abec56124d7fb43fec1b642.行为分析该程序图标设为word文档图标&#xff0c;实际为exe文件&#xff0c;诱骗受…...

从FinFET到3D-IC:2013年预测如何塑造了今天的低功耗与异构计算设计

1. 项目概述&#xff1a;站在2013年初的十字路口十多年前&#xff0c;2013年初的那个冬天&#xff0c;整个半导体与电子设计自动化行业弥漫着一种既兴奋又焦虑的复杂情绪。当时&#xff0c;我作为行业里的一名技术编辑&#xff0c;向数十位来自芯片设计公司、EDA工具供应商、IP…...

跨平台文件自由:Free-NTFS-for-Mac 终极解决方案深度解析

跨平台文件自由&#xff1a;Free-NTFS-for-Mac 终极解决方案深度解析 【免费下载链接】Free-NTFS-for-Mac Nigate: An open-source NTFS utility for Mac. It supports all Mac models (Intel and Apple Silicon), providing full read-write access, mounting, and management…...

3分钟学会离线语音转文字:TMSpeech让你的会议记录不再遗漏

3分钟学会离线语音转文字&#xff1a;TMSpeech让你的会议记录不再遗漏 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 你是否经常因为会议内容太多记不住而焦虑&#xff1f;是否担心网络语音识别会泄露你的隐私&…...

从龟速到极速:如何用trackerslist项目彻底解决BT下载瓶颈

从龟速到极速&#xff1a;如何用trackerslist项目彻底解决BT下载瓶颈 【免费下载链接】trackerslist Updated list of public BitTorrent trackers 项目地址: https://gitcode.com/GitHub_Trending/tr/trackerslist 你是否曾经面对BT下载时那令人沮丧的进度条&#xff1…...

别再为Matlab App打包发愁了!手把手教你从Web部署到桌面应用(含Runtime安装避坑)

从零到一&#xff1a;Matlab App Designer全流程打包实战指南 第一次尝试将Matlab App Designer开发的应用程序打包成可执行文件时&#xff0c;那种既期待又忐忑的心情相信很多开发者都深有体会。作为一款强大的交互式开发环境&#xff0c;Matlab App Designer让图形用户界面(G…...

从零到图像显示:用海康MVS SDK写一个最简单的C++相机采集程序

从零到图像显示&#xff1a;用海康MVS SDK写一个最简单的C相机采集程序 第一次接触工业相机开发时&#xff0c;最让人头疼的往往不是复杂的算法&#xff0c;而是如何让相机简单地显示一张图像。本文将带你用最直接的方式&#xff0c;在30分钟内完成从设备连接到实时显示的完整流…...

突破性能瓶颈:深入理解 JavaScript TypedArray

&#x1f680; 突破性能瓶颈&#xff1a;深入理解 JavaScript TypedArray &#x1f914; 为什么普通 Array 不够用&#xff1f; 在 JavaScript 中&#xff0c;普通的 Array 是一个非常灵活但“沉重”的对象&#xff1a; 动态类型&#xff1a;它可以同时存放数字、字符串、对…...

别再只懂RGB了!用PIL的getpixel()玩转图片九种模式,从像素值看图像本质

像素解码术&#xff1a;用PIL九种图像模式与getpixel()重构视觉认知 当你用getpixel()提取像素值时&#xff0c;是否曾被这些情况困扰过&#xff1a;明明是彩色图片却返回单个数字&#xff1f;处理PNG透明背景时得到四个值的元组&#xff1f;灰度图的像素值突然变成0或255&…...

AI系统可观测性:从数据漂移到模型性能的全面监控实践

1. 项目概述&#xff1a;为什么AI系统需要独立的可观测性体系&#xff1f;最近几年&#xff0c;我参与和主导了不下十个所谓的“AI驱动”或“智能”系统的构建与运维。从最初的兴奋到后来的头疼&#xff0c;一个深刻的体会是&#xff1a;传统的监控和日志体系&#xff0c;在AI系…...