异步解决方案良药Promise

异步解决方案良药Promise

promise

目前比较流行的异步解决方案,本质上是一个构造函数ajax

一、状态

promise有三种状态,初始的状态都是pedding,包括成功的状态失败的状态还有等待的状态promise

  • promise.all()全部的promise对象成功才会触发成功的状态,不然失败状态
  • promise.race()任意一个子promise的状态触发后

二、出现的缘由

咱们来经过一个例子来讲明一下异步调用的问题异步

let url1 = 'http://xxx.xxx.1';
$.ajax({
    url:url1,
    error:function (error) {},
    success:function (data1) {
        console.log(data1);
    }
});

那当咱们发出多个请求的时候就只能以嵌套的方式来解决函数

let url1 = 'http://xxx.xxx.1';
let url2 = 'http://xxx.xxx.2';
let url3 = 'http://xxx.xxx.3';
$.ajax({
    url:url1,
    error:function (error) {},
    success:function (data1) {
        console.log(data1);
        $.ajax({
            url:url2,
            data:data1,
            error:function (error) {},
            success:function (data2) {
                console.log(data2);
                $.ajax({
                    url:url3,
                    data,
                    error:function (error) {},
                    success:function (data3) {
                        console.log(data3);
                    }
                });
            }
        });
    }
});

三、主要的问题

  • 代码臃肿。
  • 可读性差。
  • 耦合度太高,可维护性差。
  • 代码复用性差。
  • 容易滋生 bug。
  • 只能在回调里处理异常。

4 、Promise 的使用

构造函数

Promise 是一个构造函数,使用 new 操做符返回一个 promise 对象url

构造函数接收一个 excutor 函数做为参数code

excutor 函数有两个函数类型的参数 resolve 和 reject对象

相关文章
相关标签/搜索