您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
ES6_Generator函数应用_03
发布时间:2019-11-11 11:31:58编辑:雪饮阅读()
generator应用,比promise某些方面更好一点的应用,例如promise虽然不至于导致回调地狱,但也是看什么样的环境下,在某些情况下promise也是要嵌套promise的,而generator则也有解决回调地狱的问题。如常见的先获取某个列表,再获取该列表中第一条数据的需求,用generator可以实现如下:
function get(url){
$.get(url,function(data){
var data=JSON.parse(data);
console.log('success',data);
if(data.length>1){
var url='cs.php?id='+data[0].id;
//第二次调用,查看详情页
SX.next(url);
}
});
}
function* MyGenerator(){
//第一次next遇到yield停止
//这里的url形参是由yield get('cs.php');所返回,而yield get('cs.php');的返回值就是上个next传的实参
let url=yield get('cs.php');
//第二次next遇到yield停止
yield get(url);
}
let SX=MyGenerator();
//第一次执行next,获取列表
SX.next();
关键字词:es6,generator