解决错误,不起作用

姜饼

我正在使用ui.router和Restangular。$stateProvider我有状态

resolve: {
    dane: function (daneTematy) {
        var promise = daneTematy.getItem(-1);
        return promise;
    }
}

对于测试,它总是错误并执行 $stateChangeError

这是服务中的功能:

function getItem(id, params) {
    return Restangular.one(zrodlo, id).get()
        .then(getItemSuccess)
        .catch(restangularError);

    function getItemSuccess(response) {
        $log.info('Mam dane elementu - Źródło: ' + zrodlo);
        response.doHistorii();
        return response;
    }
}

function restangularError(response) {
    $log.error("Error with status code", response.status);
    return response;
}

它无法正常工作-可以达到restangularError但不能达到目标$stateChangeError当我删除catch它时效果很好:

function getItem(id, params) {
    return Restangular.one(zrodlo, id).get()
        .then(getItemSuccess);

    function getItemSuccess(response) {
        $log.info('Mam dane elementu - Źródło: ' + zrodlo);
        response.doHistorii();
        return response;
    }
}

有什么问题restangularError吗?如何解决?

本特

在错误处理程序中,将错误标记为已解决。这样ui-router就得到了解决的承诺,因此不会导致$stateChangeError为了解决这个问题,如果您无法解决问题,则必须在错误处理程序中拒绝一个承诺。请参阅角度文档中的以下摘录

在将延迟/承诺与熟悉的try / catch / throw行为进行比较时,请将拒绝视为JavaScript中的throw关键字。这也意味着,如果您通过promise错误回调“捕获”错误,并且想要将错误转发到从当前promise派生的promise,则必须通过返回通过reject构建的拒绝来“ throwth”错误。

promiseB = promiseA.then(function(result) {
  // success: do something and resolve promiseB
  //          with the old or a new result
  return result;
}, function(reason) {
  // error: handle the error if possible and
  //        resolve promiseB with newPromiseOrValue,
  //        otherwise forward the rejection to promiseB
  if (canHandle(reason)) {
   // handle the error and recover
   return newPromiseOrValue;
  }
  return $q.reject(reason);
});

对于您的情况,这仅意味着您必须按以下方式修改错误处理程序(确保$q可用):

function restangularError(response) {
    $log.error("Error with status code", response.status);
    return $q.reject(response);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel错误不起作用

来自分类Dev

AngularJS $ routeProvider解决不起作用

来自分类Dev

承诺解决后返回不起作用

来自分类Dev

按顺序解决承诺不起作用

来自分类Dev

Qt Creator编译错误“找不到-lGL”。其他解决方案不起作用

来自分类Dev

Visual Studio中的_ITERATOR_DEBUG_LEVEL错误,接受的解决方案不起作用

来自分类Dev

为什么我的if ... else语句不起作用,我的错误在哪里以及如何解决?

来自分类Dev

Qt Creator编译错误“找不到-lGL”。其他解决方案不起作用

来自分类Dev

我的angularJS文件上传不起作用。它显示错误的请求错误。怎么解决呢?我正在使用java spring

来自分类Dev

闪烁的消息不起作用,但错误起作用

来自分类Dev

$ .ajax错误功能不起作用

来自分类Dev

MediaWiki错误:文件上传不起作用

来自分类Dev

Kendo for ASP MVC的错误不起作用

来自分类Dev

返回错误视图不起作用

来自分类Dev

Powershell defaultparameterset不起作用。错误

来自分类Dev

$ .ajax错误功能不起作用

来自分类Dev

Kendo for ASP MVC的错误不起作用

来自分类Dev

getOption不起作用,持续错误

来自分类Dev

返回错误视图不起作用

来自分类Dev

SupportMapFragment不起作用,出现错误

来自分类Dev

会话错误,它不起作用

来自分类Dev

PHP文件存在不起作用/错误

来自分类Dev

SQL查询错误不起作用

来自分类Dev

Powershell defaultparameterset不起作用。错误

来自分类Dev

写入文件不起作用“缩进错误”

来自分类Dev

使用splat捕获错误不起作用

来自分类Dev

奇怪的setRowspan错误/不起作用

来自分类Dev

与列表分离的错误不起作用

来自分类Dev

VBA 错误处理不起作用

Related 相关文章

热门标签

归档