javascript - promise.fail里的promise应该如何简写?
ringa_lee
ringa_lee 2017-04-10 15:46:11
[JavaScript讨论组]

需求很清晰,先去验证cookie,如果cookie不存在,那就去请求cookie,等拿到了cookie之后再去做别的事情。

现在的代码是这样写的,总觉得不是合适的写法,请问有简洁的写法吗?

   var defer = Q.defer();
    
    // 验证cookie
    verifyCookie('DFJSDFJKLWEIORUJLDF')
        .then(function (cookie) {
            defer.resolve(cookie);
        })
        .fail(function (e) {
            // 获取cookie
            getCookie()
                .then(function (cookie) {
                    defer.resolve(cookie);
                })
                .fail(function (err) {
                    defer.reject(err);
                });
        });


    // 后续操作
    defer.then...
ringa_lee
ringa_lee

ringa_lee

全部回复(2)
阿神

原来 failure 也是可以传递下去的,可以这样写

verifyCookie('...')
    .fail(function () {
        return getCookie();
    })
    .then(function (cookie) {
    });
伊谢尔伦

理论上来说可以这样写(没测试过代码,你自己试试)

// 验证cookie
verifyCookie('DFJSDFJKLWEIORUJLDF')
    .then(defer.resolve.bind(defer))
    .fail(function(e) {
        // 获取cookie
        getCookie().then(defer.resolve.bind(defer), defer.reject.bind(defer));
    });
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号