[TOC]
## 简单的generator(运行原理)
```
function *gen(x){
console.log(x)
var y = yield x;
//y是yield的返回值 由自己决定 ---从g.next(y)中传入 与yield后面的内容无关
var z = yield x+y;
yield z + y + x
}
var g = gen(10)
console.log(g)
console.log(g.next())
// g.next()会得到一个对象,有value,就是yield后面的内容,done表示generator函数是否执行完毕
console.log(g.next(50))
console.log(g.next(35))
```
## 请求豆瓣
```
<input type="text" placeholder="你的名字">
<button>搜索</button>
<h1></h1>
<img src="" alt="">
<p></p>
```
### 业务逻辑
```
<script>
var baseUrl = "https://douban.uieee.com/v2/movie/"
function* getData() {
var id = yield $.ajax({
url: baseUrl + 'search?q=你的名字&count=1',
dataType: "jsonp",
})
yield $.ajax({
url:baseUrl.id,
dataType:"jsonp"
})
}
var gen = getData();
var movie = gen.next();
movie.value.then(res=>{
var id = res.subjects[0].id;
var detail = gen.next(id)
detail.value.then(res=>{
console.log(res)
})
})
</script>
```
- 效果实例
- 1.点击增加高度
- 2.tab页面切换
- 3. 列表切换
- 4. 隔行变色
- 5. swiper 轮播
- 6.vue
- 7.定时器
- 8. 向表格中添加数据
- 9 瀑布流
- 1.JavaScript基础
- 1. 变量
- 2. 调试
- 3.数据类型
- 4.转换
- 5.控制语句
- 6.运算
- 7. this
- 8 JSON对象和javascript对象的相互转换
- 2.JavaScript的控制语句
- 1. 基本控制语句
- 2.节点
- 2.1DOM补充
- 3. 函数
- js的模块化如何解决
- 不知道有什么用的
- 4.数组
- 5. String
- 补充
- 6.Ajax
- 1. 原生Ajax
- 2. HTTP/get/post
- 3.jQuery-Ajax
- 4.跨域
- 5.axios
- 6.封装
- Ajax效果
- ajax补充
- 7. 正则
- 1.创建正则表达式
- 2. 正则的api
- 3.正则语法
- 4.例子
- 量词
- 8.面向对象
- 1.原型
- ES6
- 模块化
- 1.回调地狱
- 什么是回调地狱
- 简单封装
- promise解决回调地狱
- generator解决回调地狱
- async解决回调地狱
- 2.封装
- Ajax,promise
- JavaScript难点
- 1. 闭包/作用域
- 2.原型链
- 3. 兼容性
- 适配
- JavaScript小效果
- 字符串截取