Promise的使用

在编程中会存在异步的问题

  常见异步调用的情况:(1)定时任务  (2)Ajax  (3)事件函数

  多次调用异步函数会出现的情况  (1)多次异步调用的结果顺序不确定

                  (2)异步调用结果如果存在依赖需要嵌套

        如以下情况(多层嵌套,可读性不好)

    <script>
        $.ajax({
            url: 'http://localhost:3000/path',
            success: function(data) {
                console.log(data);
                $.ajax({
                    url: 'http://localhost:3000/path1',
                    success: function(data) {
                        console.log(data);
                        $.ajax({
                            url: 'http://localhost:3000/path2',
                            success: function(data) {
                                console.log(data);
                            }
                        })
                    }
                })
            }
        });
    </script>

  Promise的出现可解决上述问题,Promise是异步编程的一种解决方案,从语法上讲,Promise是一个对象,用它可获取异步操作的消息。

  优点:可以避免多层异步调用嵌套问题

     Promise对象提供了简洁的API,使得控制异步操作更加容易

 

  Promise的基本用法

    (1)实例化Promise对象,构造函数中传递地参数,该函数中用用于处理异步任务

    (2)resolve与reject两个参数用于处理成功和失败的情况,通过.then获取处理结果

    <script>
        var p = new Promise(function(resolve, reject) {
            var flag = false;
            if (flag) {
                resolve('hello');
            } else {
                reject('出错了');
            }
        });
        p.then(function(data) {
            console.log(data);
        }, function(inif) {
            console.log(inif);
        })
    </script>

  

posted @ 2020-04-10 11:35  Alisa-k  阅读(135)  评论(0编辑  收藏  举报