Promise-封装Ajax基本用法

/* Promise基本用法 */

    var promise = new Promise((resolve, reject) => {
        // 发送ajax
        var ajax = new XMLHttpRequest();
        ajax.open('get', './data.json');
        ajax.onreadystatechange = function () {
            // 状态码等于4 服务器响应就绪
            if (ajax.readyState === 4) {
                if (ajax.status === 200) {
                    // 如果状态码是200 那就是请求成功
                    var data = JSON.parse(ajax.responseText);
                    // 如果是成功 就用resolve处理成功数据 传到下一个then的第一个回调
                    resolve(data);
                } else {
                    // 否则状态码不是200 那就是请求失败
                    var errMsg = {"errcode": ajax.status, "msg":"请求接口失败!"}
                    // 如果是失败 使用reject处理 把失败信息 传到下一个then的第二个回调
                    reject(errMsg)
                }
            } 
        }
        ajax.send();
    })
    .then(response => {
        // 这里可以接收 上一步 用 resolve处理的成功的数据
        console.log('第二步接收到的数据:', response);
    }, err => {
        // 这里可以接收 上一步 用 reject处理的错误信息
        console.log('第二步接收到的错误:', err);
    })

你可能感兴趣的:(Promise-封装Ajax基本用法)