2016-06-14 89 views
0

我是量角器新手。我想从protractor.promise.defer.reject无法抓住protractor.promise.defer.reject

var action = function(){ 
      var defer = protractor.promise.defer() 
      ASYN_POST(function(result){ 
       if(result){ 
       defer.fulfill(); 
       }else{ 
       defer.reject(new Error('post failure')); 
       }; 
      }); 
      return defer.promise; 
      }; 
it('example', function(done){ 
    action().then(console.log).catch(function(){ 
     console.log('catch you'); 
    }); 
}); 
当执行else分支

捕获异常,捕捉功能亘古不被调用。我如何修复我的代码。感谢

输出:

defer.reject(new Error('catch you')); 
         ^
Error: downgrading failure 
    at Request._callback (/vagrant/vosaas438/spec/versions-api.spec.js:93:26) 
    at Request.self.callback (/usr/local/lib/node_modules/request/request.js:199:22) 
    at emitTwo (events.js:87:13) 
    at Request.emit (events.js:172:7) 
+0

请注意,您的代码中存在拼写错误:filfull(); – Xotabu4

+0

修复了错字。谢谢 – cppython

+0

你多久打一次'action'?注意'defer'是一个[隐含的全局变量](http://blog.niftysnippets.org/2008/03/horror-of-implicit-globals.html),它绝对不应该是这样。 – Bergi

回答

0

我还与.catch烦恼()。尝试为.then提供第二个函数(callbackForSuccess,callbackForReject);它也将被用作拒绝的回调。

it('example', function(done){ 
    action().then(console.log, function(){ 
     console.log('catch you'); 
    }); 
}); 
+0

我试过这种方法,但它不适用于我 – cppython