美文网首页
用回调实现LazyMan

用回调实现LazyMan

作者: size_of | 来源:发表于2017-09-07 15:53 被阅读0次

仅作为学习笔记、日常交流使用

function LazyMan(name){
    var queue = [];
    var api = {
        sleep:function(seconds){
            queue.push(function(){
                console.log(`please wait ${seconds} seconds`);
                setTimeout(function(){
                    next();
                },seconds*1000);
            });
            return api;
        },
        eat:function(what){
            queue.push(function(){
                console.log(`Eat ${what}`);
                next();
            });
            return api;
        },
        sleepFirst:function(seconds){
            queue.unshift(function(){
                console.log(`please wait ${seconds} seconds`);
                setTimeout(function(){
                    next();
                },seconds*1000);
            });
            return api;
        },
        hi:function(name){
            queue.push(function(){
                console.log(`hi ${name}`);
                next();
            });
            return api;
        }
    }
    function next(){
        var fn = queue.shift();
        if(fn !== undefined){
            fn.call();
        }
    }
    api.hi(name);
    setTimeout(function(){
        next();
    },0);
    return api;
}
//LazyMan('fengjixuan').sleepFirst(2).eat('banana').eat('apple');
//LazyMan('fengjixuan').sleep(2).eat('banana').eat('apple');
//LazyMan('fengjixuan').eat('banana').eat('apple');
LazyMan('fengjixuan').sleepFirst(2).sleep(10).eat('banana').eat('apple');

相关文章

  • 用回调实现LazyMan

    仅作为学习笔记、日常交流使用

  • js重点与难点(转)

    javascript LazyMan实现LazyMan(什么是LazyMan?请自行google)function...

  • LazyMan的实现

    题目介绍 实现一个 LazyMan,可以按照以下方式调用:LazyMan("Hank") 输出:Hi! This ...

  • lazyman

    实现一个LazyMan,可以按照以下方式调用:LazyMan(“Hank”)输出:Hi! This is Hank...

  • LazyMan 实现...

    // 实现一个LazyMan,可以按照以下方式调用:// LazyMan(“Hank”)输出:// Hi! Thi...

  • 实现一个LazyMan

    实现一个 LazyMan,可以按照以下方式调用:LazyMan("Hank")输出:Hi! This is Han...

  • lazyman 实现

    function _lazyman(name) {this.tasks = [];var self = this;...

  • 实现lazyMan

    涉及的知识点: 流程控制:创建task任务队列,使用push、shift、unshift方法操作任务 闭包:当闭包...

  • java回调函数

    利用接口来实现回调,即在调用回调函数的类中实现接口,并实现接口中的方法即回调的方法,被调用类中存在接口的熟悉,并将...

  • LazyMan 自己的笨办法

    LazyMan 自己的笨办法 看了LazyMan,先用自己的笨办法写了个,只是为了实现功能,其他要求都没达到 本人...

网友评论

      本文标题:用回调实现LazyMan

      本文链接:https://www.haomeiwen.com/subject/tjmijxtx.html