NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
基础: ``` <script> function *gen(x){ console.log(x); yield x; yield 10 ; } var g = gen(1); console.log(g.next()); //{value: 1, done: false} /* g.next()会得到一个对象,有value,有done,value就是yield后面的内容,done表示generator函数是否执行完毕 */ console.log(g.next()); //{value: 10, done: false} console.log(g.next()); //{value: undefined, done: true} </script> ``` 进阶版: ``` <script> function *gen(x){ console.log(x); var y = yield 13+x; yield y+x; } var g = gen(10); console.log(g.next()); //{value: 1, done: false} /* g.next()会得到一个对象,有value,有done,value就是yield后面的内容,done表示generator函数是否执行完毕 */ console.log(g.next(50)); //{value: 60, done: false} /* 这个里面的50指的是第一个传的值的返回值y */ </script> ``` ***** 升级版---ajax: ``` <div id="div"></div> <img src="" alt=""> <p id="p"></p> <script> var baseUrl = `http://api.douban.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 title = res.subjects[0].title; var imgUrl = res.subjects[0].images.small; console.log(title); console.log(imgUrl); $("img").attr("src", res.subjects[0].images.small); $("#div").html(res.title) var detail = gen.next(id) detail.value.then(res => { console.log(res); var summary = res.summary; $("p").html(summary) }) }) </script> ```