co(function *() {
var now = Date.now();
yield sleep200;
console.log(Date.now() - now);
});
function co(fn){
var gen = fn();
next();
function next(res){
var ret;
ret = gen.next(res);
// 全部结束
if(ret.done){
return;
}
// 执行回调
if (typeof ret.value == 'function') {
ret.value(function(){
next.apply(this, arguments);
});
return;
}
throw 'yield target no supported!';
}
}
function sleep200(cb){
setTimeout(cb, 200)
}
在next.apply()那一行。
我这里有点糊涂了,像这种点调用的话,this不应该指向调用者吗?也就是next对象,可这里next是个函数。可为什么是window对象呢
神不在的星期二
相关分类