regenerator

ES6 系列之 Babel 将 Generator 编译成了什么样子

依然范特西╮ 提交于 2021-02-17 03:45:27
摘要: ## 前言 本文就是简单介绍下 Generator 语法编译后的代码。 ## Generator ```js function* helloWorldGenerator() { yield 'hello'; yield 'world'; return 'ending'; } ``` 我们打印下执行的结果: ```js var hw = hel 前言 本文就是简单介绍下 Generator 语法编译后的代码。 Generator function* helloWorldGenerator() { yield 'hello'; yield 'world'; return 'ending'; } 我们打印下执行的结果: var hw = helloWorldGenerator(); console.log(hw.next()); // {value: "hello", done: false} console.log(hw.next()); // {value: "world", done: false} console.log(hw.next()); // {value: "ending", done: true} console.log(hw.next()); // {value: undefined, done: true} Babel 具体的执行过程就不说了,我们直接在

web-jet中 ES6 写法编写promise对象时出现报错 regeneratorRuntime is not defined

喜夏-厌秋 提交于 2021-02-11 05:20:10
参考网络相关资料,解决: ① cnpm install --save-dev babel-plugin-transform-runtime ②修改.babelrc文件,原来: "plugins": ["transform-object-rest-spread", "syntax-dynamic-import"] 一行改为: "plugins": ["transform-object-rest-spread", "syntax-dynamic-import", ["transform-runtime", { "helpers": false, "polyfill": false, "regenerator": true, "moduleName": "babel-runtime" } ] ] 来源: oschina 链接: https://my.oschina.net/jsjapp/blog/4952180

Appium+python自动化(八)- 初识琵琶女Appium(千呼万唤始出来,犹抱琵琶半遮面)- 下(超详解)

非 Y 不嫁゛ 提交于 2020-04-24 14:17:03
​简介   通过上一篇宏哥给各位小伙伴们的引荐,大家移动对这位美女有了深刻的认识,而且她那高超的技艺和婀娜的身姿久久地浮现在你的脑海里,是不是这样呢???不要害羞直接告诉宏哥:是,就对了。宏哥要的就是这个效果。达到这个效果,就说明你学的差不多了,可以出师了。今天继续由宏哥给你引荐这位琵琶美女。 说明:Appium--奴家的大号,提起奴家的大号在江湖上也是无人不知,无人不晓。奴家==Appium; 1、界面认识(奴家外表)   在之前安装appium的时候说过我们有两种方法安装,也就有两种结果,一种是有界面的(客户端安装),一种是没有界面的(终端安装),首先我们先讲一下有界面的,以及界面有哪些东西。   首先和宏哥看一下琵琶女的外表,如果你的是windows系统那么界面就应该是这样的,所以当你发现你的和我的琵琶女不一样也不用担心,这个就是所谓的“龙生九子,各有不同”,但是正常windows版整个界面只有7个按钮,宏哥会按照从左到右从上到下的顺序讲。 (mac的会有一定的差异,但并不是很大,只是排版和样式的问题,但是功能都一样。) 1)Android Settings:左边的第一个按钮,主要是配置android的相关设置,他里面的结构图我们看下张图片 a. Application Path: 选择路径,选择需要测试的app在本电脑存放的一个路径

微信小程序 使用async await

我的未来我决定 提交于 2020-04-17 20:24:23
微信小程序并不支持async,写起代码来太不舒服了. 各种回调会造成回调地狱的问题,回调函数一层套着一层,代码难以阅读,后期难以维护的问题 解决办法: 使用 regenerator-runtime regenerator-runtime是facebook的regenerator模块 生成器函数、async、await函数经babel编译后,regenerator-runtime模块用于提供功能实现。 引入 facebook/regenerator 中的packages/regenerator-runtime/runtime.js 步骤1 引入并注册 因全局都要用到,所有在 app.js 中引入,并注册全局对象中. app.js import regeneratorRuntime from './lib/runtime' App({ ... regeneratorRuntime, onLaunch(){}, onShow() {}, onHide() {}, ... }) 复制代码 步骤2 封装request request.js const METHOD = { GET: 'GET', POST: 'POST', PUT: 'PUT', DELETE: 'DELETE' } let baseUrl = '' const interceptors = [] class Request

babel知识体系漫谈

核能气质少年 提交于 2020-04-06 02:49:47
钉钉前端团队原创,点击右上角关注我们,了解更多前端技术 作者: 烛象 引言 在JavaScript蓬勃发展的今天,ES6/7、typescript已经成为代码编写的标配。 上一篇文章,我们介绍了钉钉IDL和自动生成typescript定义的工具,本文将会介绍AST相关js知识:babel。 关于babel 一句话阐述什么是babel: babel是一个主要用于将ES2015+版本的代码编译成向下兼容(比如ES5/ES3)js版本的编译器。 // Babel Input: ES2015 arrow function [ 1 , 2 , 3 ].map( ( n ) => n + 1 ); // Babel Output: ES5 equivalent [ 1 , 2 , 3 ].map( function ( n ) { return n + 1 ; }); 复制代码 结合实际使用场景,我们接触到的babel使用方式一般为 .babelrc/babel.config.json (babel配置文件) babel-loader (webpack/rollup等) 然而,.babelrc的每一块配置后面究竟代表着babel怎样的处理方式,这个估计很少有人能讲得清楚。 babel知识体系 1、主要组件 源代码到AST: babel/parser(前身为babylon) 依赖acorn