美文网首页
队列顺序输出

队列顺序输出

作者: 张思学 | 来源:发表于2020-06-09 12:08 被阅读0次

实现一个LazyPig,可以按照以下方式调用:
/* LazyPig("Peggy")输出:
Hello,I'm Peggy!
LazyPig("Peggy").sleep(10).eat("dinner")输出
Hello,I'm Peggy!
//等待10秒..
Wake up after 10
Eat dinner~

function LazyPig(name) {
            console.log(`Hello, I\'m ${name}!`)
            var arr = new Array();
            var isRec = false;
            var isSteep = false;
            this.sleep = function (n) {
                isSteep = true
                arr.push({
                    fun: "sleep",
                    val: n
                });
                if (!isRec) {
                    recursive();
                }
                return this;
            }
            this.eat = function (input) {
                if (isSteep) {
                    arr.push({
                        fun: "eat",
                        val: input
                    });
                } else{
                    _eat(input);
                }
                return this;
            }
            function _eat (input) {
                console.log(`Eat ${input}`);
            }
            function recursive() {
                isRec = true;
                if (!!arr) {
                    var obj = arr.shift();
                    if (!obj) return;
                    if (obj.fun === "sleep") {
                        console.log(`Wake up after  ${obj.val}`);
                        setTimeout(function () {
                            recursive();
                        }, obj.val * 1000)
                    } else {
                        _eat(obj.val);
                        recursive();
                    }
                }
            }
            return this;
        }
        LazyPig('Peggy').sleep(5).eat('dinner').sleep(1).eat('supper');

相关文章

  • 队列顺序输出

    实现一个LazyPig,可以按照以下方式调用:/* LazyPig("Peggy")输出:Hello,I'm Pe...

  • 【数据结构】【C#】008-队列:👬👬顺序队列(循环队列)

    C#数据结构:顺序队列 1、 顺序队列的假溢出现象 队列的一种顺序存储称为顺序队列。与顺序栈类似,在队列的顺序存储...

  • iOS GCD初识.md

    串行队列 串行队列:操作是按顺序执行的,并且都在同一个线程上输出 一个串行队列对应只有一个线程,因此同时只能执行一...

  • 0x07队列

    a、顺序队列 b、链式队列

  • 队列

    顺序存储结构队列 循环队列 链队列

  • JS同步回调和异步回调

    同步回调函数 按照正常顺序执行 输出为: 异步回调函数 setTimeout将回调函数放在下一个任务队列执行 输出为

  • 优先队列

    队列是先进先出的一种逻辑数据结构,优先队列是可以按照指定顺序输出元素的一种队列。它的底层实现是堆(堆的底层实现是用...

  • Java数组实现循环队列

    Java数组实现循环队列 上一节(Java实现队列——顺序队列、链式队列)我们使用数组实现了顺序队列,但是在tai...

  • 顺序队列

    队列是一种受限的线性表,它是只在队首进行插入,且只能在队尾进行删除。队列具有先进先出的特性,广泛应用在树的层次遍历...

  • 顺序队列

网友评论

      本文标题:队列顺序输出

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