首页 > promise.fail里的promise应该如何简写?

promise.fail里的promise应该如何简写?

需求很清晰,先去验证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...

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

// 验证cookie
verifyCookie('DFJSDFJKLWEIORUJLDF')
    .then(defer.resolve.bind(defer))
    .fail(function(e) {
        // 获取cookie
        getCookie().then(defer.resolve.bind(defer), defer.reject.bind(defer));
    });

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

verifyCookie('...')
    .fail(function () {
        return getCookie();
    })
    .then(function (cookie) {
    });
【热门文章】
【热门文章】