return不生效问题记录

做js项目时,在请求拦截里判断是否有token,没有的话就跳转登录页,结果发现没有登陆直接进入home页面,return之后没有终止,会在继续执行,一直等home页面的请求完毕之后才会跳转到login页面

return location.href = './login.html';

如下执行了 location.href = ‘./login.html’; 但是还在home页
在这里插入图片描述
解决:
return false会终止操作

    location.href = './login.html';
    return false

但是在响应拦截complete里面return false还是会执行其他函数,本来想判断一下登录超时用alft()弹出一个警告,结果因为是每次请求都会触发complete(每一个请求不是在一个函数中写的),这样就会造成登陆超时了,第一次触发complete会执行弹窗,一个页面有多个请求的话就会多次触发, 会依次弹出多个弹框
于是做了一个节流问题就完美的解决了,这样登录超时的时候虽然会执行下面的函数 但是不会重复的弹出警告框了

var key = true
function throttle(msg) {
   if(key){
    key = false
     alert(msg);
       setTimeout(()=>{
        key = true
   },3000)
   }else{
     return
   }
 };

ps:
return false只会结束当前函数返回结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
@ControllerAdvice 是用于全局异常处理的注解,其作用是在 Spring MVC 中统一处理异常,可以减少重复代码的编写。但是在 Dubbo 中,由于 Dubbo 是一个 RPC 框架,不是基于 HTTP 协议的 Web 框架,所以 @ControllerAdvice 并不会生效。 在 Dubbo 中,如果需要实现全局异常处理,可以使用 Dubbo 提供的 Filter。Dubbo Filter 是一个类似于 Servlet Filter 的组件,可以在服务提供者和服务消费者之间进行拦截,实现一些通用的功能,例如:日志记录、安全验证、异常处理等。 具体来说,可以实现一个实现了 Filter 接口的类,并在其中重写 onInvoke() 方法。在该方法中,可以捕获到服务调用时抛出的异常,并进行处理。例如,可以将异常信息记录到日志中,或者返回一个自定义的错误信息。 示例代码如下: ```java public class ExceptionFilter implements Filter { @Override public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException { try { // 调用服务 return invoker.invoke(invocation); } catch (Exception e) { // 异常处理 // 记录日志或者返回自定义的错误信息 return new RpcResult("调用服务出现异常"); } } } ``` 然后在 Dubbo 的配置文件中,将该 Filter 配置到服务提供者和服务消费者上即可: ```xml <dubbo:provider filter="exceptionFilter" /> <dubbo:consumer filter="exceptionFilter" /> ``` 注意,需要将上述代码中的 exceptionFilter 替换成实际的 Filter 类名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值