你的位置:首页 > Java教程

[Java教程]async.whilst 的一个简化版实现

function whilst(condition, todo, fin){  var cb = function(){    if(condition()){      todo(cb);    }else{      fin();    }  }  cb();}

这里之所以要用递归,而不用简单的循环就是为了 让 cb 起到一个作用:

    指示本次任务完成,进行下一次任务,如果用简单的循环,那么指示每次任务完成的标志就是 循环一次,这样就无法检测异步操作是否真正完成了。

所以把cb用在异步的代码里,可以做到指示本次异步操作完成,赶紧进行下一个任务吧。这个意思。