在第一次拒绝时打破承诺链的正确方法

时间:2014-10-20 16:31:40

标签: javascript node.js express promise q

我有一个承诺链,要求对各个步骤采取不同的处理方式:

serviceA.getData()
    .then(
        function(dataA) {
            return serviceB.getData(dataA);
        }, function(err) {
            res.status(404).end();
        }
    )
    .then(
        function(dataB) {
            return serviceC.getData(dataB);
        }, function(err) {
            res.status(401).end();
        }
    )
    .done();

serviceA.getData()承诺被拒绝时,我希望在第一个拒绝处理程序执行后中断promise链。相反,两个拒绝处理程序都会被执行。

无法在Q docs中找到答案。建议?

0 个答案:

没有答案