美文网首页
02_12.使用promise解决回调嵌套问题

02_12.使用promise解决回调嵌套问题

作者: Robyn_Luo | 来源:发表于2017-11-13 17:06 被阅读0次
    <script>
        // 需求: 使用promise改造下面的代码
        // setTimeout(function() {
        //     console.log('第一个计时器回调执行,开启第二个');
    
        //     setTimeout(function() {
        //         console.log('第二个计时器回调执行,开启第三个');
    
        //         setTimeout(function() {
        //             console.log('第三个计时器回调执行');
    
        //         }, 2000);
        //     }, 2000);
        // }, 2000);
    
        /*---------------------------------------------------------------------------------------*/ 
        let p = new Promise(function(yes, no) {
            setTimeout(() => {
                yes();
            }, 2000);
        });
    
        // 上一个定时器执行完毕后, 开启下一个定时器
        p.then(function() { 
            console.log('第一个计时器回调执行,开启第二个');
    
            // 为了可以在外面调用该实例的then方法,只要return出去就可以了
            return new Promise(function(yes, no) {
                setTimeout(() => {
                    yes();
                }, 2000);
            });
    
        })
    
        // 如果then回调中返回的是promise实例,那么我们就可以链式编程得到它
        .then(function() {
            console.log('第二个计时器回调执行,开启第三个');
    
            // 为了可以在外面调用该实例的then方法,只要return出去就可以了
            return new Promise(function(yes, no) {
                setTimeout(() => {
                    yes();
                }, 2000);
            });
        })
    
        .then(function() {
            console.log('第三个计时器回调执行, 完毕');
        });
    
        </script>
    

    相关文章

      网友评论

          本文标题:02_12.使用promise解决回调嵌套问题

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