generator,模块化与babel
ES6:
变量、箭头、参数、map、reduce、filter、forEach
Promise.all(p1, p2, p3, ...).then()
generator -特殊的函数
普通函数 -- 一直执行到头 飞机
generator -- 中间可以暂停 出租车
generator只能用function, 不能用箭头
yield:
1.传参
2.返回值
用在哪儿?
function *show(){
}
async/await
-------------- 30min ----------------
promise本质是等待异步操作结束
generator本质是无感的处理异步操作
async本质还是generator,官方的renner
---------------------------------------
renner(function *(){
操作1
let 结果1 = yield 异步操作
操作2
let 结果2 = yield 异步操作
操作。。。
})
(async () => {
操作1
let 结果1 = await 异步操作
操作2
let 结果2 = await 异步操作
操作。。。
})();
模块化:
模块 == 元件 == 组件
模块化方案:
1.民间的--sea.js、require.js
CMD和AMD规范
2.nodejs模块化
3.ES6模块化
------------------- 46min ------------------
1.定义一个模块
//xx.js
define(function(require, exports, module){
exports.a = 12;
})
2.引用模块
//index.html
seajs.use(['xxx.js', 'xxy.js'], function(xx, xy){
alert(xx.a) //12
})
-----------------------------------------------
html引用js-------use
js引用-----------require
node模块化:
1.没有defined
2.exports、require、module
3.引用自定义模块
1>放到node_modules里
2>引用时前面加./
---------node model-------------
1.创建包信息
npm init
2.发布node_modules代码(2种方式)
1>放在开发路径的node_modules文件夹下
2>发布到npm官网
1.进入该model的目录cd nmath
2.npm login
------登录自己的邮箱,npm需要发送验证邮件------
3.sudo npm publish nmath
3.撤销发布的model
1>进入该model的目录cd nmath
2>npm login
3>sudo npm unpublish nmath --force
-------------------ES6 模块化--------------------
import
export
当前浏览器还不支持export和import
解决方法:
--------babel------
cli => command line interface