如何用角度$ q立即拒绝

时间:2016-04-15 22:08:31

标签: angularjs angular-promise

在进行ajax调用之前,我想要做一个测试。如果该测试是失败的情况我想立即拒绝,但似乎我不能这样做:

  svc.test = function(foo){
    var def = $q.defer();

    if (!foo){
      def.reject(new Error('failed'));
    } else {
      // get data via ajax here
      def.resolve({})
    }

    return def.promise;
  };

我尝试在setTimeout周围添加def.reject(),但我的单元测试不起作用。

  it.only('should error ', function(){
    return expect(MyServices.test()).to.eventually.be.rejectedWith('failed');
  });

使用原生承诺可以正常工作,但我需要使用$q执行此操作:

  return Promise.reject(new Error('failed'));

0 个答案:

没有答案