ES6

ES6 - Promise和Ajax (精华)

2019-01-10  本文已影响0人  饮杯梦回酒

导读:

例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="../jquery-3.3.1.min.js"></script>
</head>
<body>
    <script type="text/javascript">
    /*
        定义一个使用promise的ajax请求,模拟用户登录场景
    */
    const ajaxPromise = obj => {
        return new Promise((resolve, reject) => {
            $.ajax({
                type: obj.type,
                url: obj.url,
                data: obj.data,
                success: res => {
                    resolve(res);      // 请求成功则转成Promise对象并判断为resolve状态
                },
                error: err => {
                    reject(err.status);      // 请求失败则转成Promise对象并判断为reject状态
                }
            })
        })
    } 

    /*
        函数1:判断用户登陆成功
     */
    let userLogin = () => {
        // 第一次执行ajaxPromise
        ajaxPromise({
            type: 'get',
            url: 'test.php',
            data: { userName: 'Verin', userPwd: '123456'}
        }).then(res => {
            console.log('后台校验提交的数据并返回成功信息');        // 成功则二次ajax请求,取用户信息
            getUserInfo(res);
        }).catch(err => {
            console.log('用户校验提交的数据失败,无法登陆');
        })
    }

    /*
        函数2:取出对应登录用户的信息
     */
    let getUserInfo = res => {
        ajaxPromise({
            type: 'get',
            url: 'test2.php',
            data: { status: 'success to finish getUserInfo!'}
        }).then(res => {
            console.log('获取用户信息:');
            console.log(res);
        }).catch(err => {
            console.log('获取用户信息失败' + err);
        })
    }

    userLogin();
    </script>
</body>
</html>

总结:

上一篇 下一篇

猜你喜欢

热点阅读