美文网首页
Promise初步

Promise初步

作者: 温酒居士 | 来源:发表于2020-08-06 16:07 被阅读0次
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    /**
     * 如果我想分三次输出字符串,第一次间隔 1 秒,第二次间隔 4 秒,第三次间隔 3 秒:
     * */

    function count() {
        //两个参数,第一个方法,第二个时间
        setTimeout(function () {
            //3秒后执行这段代码
            console.log("first")
            setTimeout(function () {
                //    接着两秒后再执行这段代码
                console.log("second")
                setTimeout(function () {
                    //4秒后再执行这段代码
                    console.log("three")
                }, 4000)
            }, 2000)
        }, 3000)
    }

    count();

    /**
     *   使用Promise来实现
     *  只有一个参数为起始函数,Promise构造时自动执行,起始函数有两个参数,
     * */
    new Promise(function (resolve, reject) {
        setTimeout(function () {
            console.log("First");
            resolve();
        }, 1000);
    }).then(function () {
        return new Promise(function (resolve, reject) {
            setTimeout(function () {
                console.log("Second");
                resolve();
            }, 4000);
        });
        //下面的这处then方法是上一个return返回的
    }).then(function () {
        setTimeout(function () {
            console.log("Third");
        }, 3000);
    });

    /**
     * 进一步优化
     *    将它的核心部分写成一个 Promise 函数
     */
    function print(delay, message) {
        return new Promise(function (resolve, reject) {
            setTimeout(function () {
                console.log(message);
                resolve();
            }, delay);
        })
    }

    print(1000, "first").then(function () {
        return print(4000, "second")
    }).then(function () {
        print(3000, "third");
    })

</script>
</body>
</html>

https://www.runoob.com/js/js-promise.html

公众号.png

相关文章

网友评论

      本文标题:Promise初步

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