处理蓝鸟完成的Promise.reject(解决,拒绝)

时间:2018-03-15 06:41:19

标签: javascript bluebird

我对承诺的理解并不完美。

请帮助我正确编写代码。

有功能:

function getData(name){
     if(!name){
          return P.reject(new Error('Name is required'));
     }
  ...}

这是另一个功能

function doStuff(){
     return something.getData().done(null, function(err) {
        console.log('ok');
        });
  ...}

在bluebird中,当我调用doStuff()时,它应该处理被拒绝的承诺,因为Promise.prototype.catch()会这样做

 .done(
      [function(any value) fulfilledHandler],
      [function(any error) rejectedHandler]
 ) -> undefined

但仍然抛出错误:

 ERROR: Name is required

为什么以及如何处理它?<​​/ p>

0 个答案:

没有答案