function runner(_gen){
return new Promise((resolve, reject)=>{
var gen=_gen();
_next();
function _next(_last_res){
var res=gen.next(_last_res);
if(!res.done){
var obj=res.value;
if(obj.then){
obj.then((res)=>{
_next(res);
}, (err)=>{
reject(err);
});
}else if(typeof obj=='function'){
if(obj.constructor.toString().startsWith('function GeneratorFunction()')){
runner(obj).then(res=>_next(res), reject);
}else{
_next(obj());
}
}else{
_next(obj);
}
}else{
resolve(res.value);
}
}
});
};
2019-08-15 手写generator函数运行容器(blue)
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 传统的OS 1. install centos mini 2. virtualbox 虚机网桥配置: 修改网卡类型...
- 实验了一下AutoInt模型,其实在看到论文之前就有类似的想法,但是效果不好(auc很低,大概只有0.6),没有继...