要和守约赴约
要和守约赴约
  • 发布:2022-06-13 19:26
  • 更新:2022-06-13 19:26
  • 阅读:600

请问addInterceptor内部拦截逻辑是?true和false的返回是什么作用?

分类:uni-app

最近调试uniapp的拦截器非常头晕,使用白名单拦截时时常发生界面被锁定(lock)而跳转失败的情况,现在的修改方案是将所有return true和return false全部改为了return e即可正常拦截跳转。

【上述问题是在app调用tabbar页面时发生,h5暂且正常】

对此我提出的问题是,文档中提及的return true和false是什么逻辑什么作用,使用return e替换会有什么隐藏隐患吗,如果有,我应该如何合理运用true 和 false,因为目前为止会一直不规律的拦截失败、跳转锁定的情况发生。

附上修改后的部分代码

复制代码let list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];  
    list.forEach(item => { //用遍历的方式分别为,uni.navigateTo,uni.redirectTo,uni.reLaunch,uni.switchTab这4个路由方法添加拦截器  
      uni.addInterceptor(item, {  
        //注意 这个里面的回调函数不可以使用 async 类型的  
        invoke(e) {  
          const token = uni.getStorageSync('uni_id_token');  
          let islogin = (token && token.length >2) ? true : false;  
          if(!islogin){  
            console.log("未登录状态下拦截 跳转到登陆页:");  
            console.log('e',e);  
            console.log('checkPages',checkPages(e.url));  
            if(!checkPages(e.url)){  
              utils.GoToPage(PAGE_ENUM.LOGIN_PAGE);  
              console.log('false false false', e.url);  
              return e;  
            }  
            console.log('ok');  

          }  
          return e;  
        },  
        fail(err) { // 失败回调拦截  
          console.log('这里',err);  
        }  
      })  
    })
2022-06-13 19:26 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复

  • 标题 / 粗斜体
  • 代码片段
  • 超链接 / 图片 / 视频
  • 列表 / 引用

文章内容较多时,可以用标题分段 :

## 大标题 
### 小标题

斜体 / 粗体 :

**粗体** 
*斜体*
***粗斜体***

代码片段 :

``` javascript
代码片段
```

超链接 :

[链接文字](链接地址) 例: [百度](http://www.baidu.com)

图片 :

![图片说明](图片地址) 例: ![百度logo](http://www.baidu.com/img/bdlogo.gif)

视频 :

!![视频说明](视频地址) 例: !![优酷视频](http://youku.com)

有序列表 :

1. 123
2. 123
3. 123

无序列表 :

- 123
- 123
- 123

引用 : ( 双回车后结束引用 )

> 引用内容
引用内容
引用内容