一页天书不分说

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
function whilst(condition, todo, fin){
    var cb = function(){
        if(condition()){
            todo(cb);
        }else{
            fin();
        }
    }
    cb();
}

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

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

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

posted on 2016-05-12 16:51  一页天书不分说  阅读(536)  评论(0编辑  收藏  举报