c***@163.com
c***@163.com
  • 发布:2024-11-12 19:15
  • 更新:2024-11-13 11:16
  • 阅读:80

【报Bug】uniCloud.interceptObject 不能停止云对象的调用, uniCloud.addInterceptor 却可以?

分类:uniCloud

产品分类: uniCloud/支付宝小程序云

示例代码:
uniCloud.interceptObject({  
        async invoke({  
            objectName, // 云对象名称  
            methodName, // 云对象的方法名称  
            params // 参数列表  
        }) {  
            //token过期  
            if (uniCloud.getCurrentUserInfo().tokenExpired <= Date.now()) {  
                console.log("身份过期,自动跳转至登录页面");  
                uni.showToast({  
                    icon: 'error',  
                    title: "身份过期,请登录"  
                })  
                uni.navigateTo({  
                    url: "/uni_modules/uni-id-pages/pages/login/login-withpwd"  
                })  
                return false  
            }  
            console.log('interceptObject', {  
                objectName, // 云对象名称  
                methodName, // 云对象的方法名称  
                params // 参数列表  
            });  

        },  
        success(e) {  
            console.log(`拦截并执行成功:`, e);  
        },  
        complete() {  

        },  
        fail(e) {  
            console.log(`拦截并执行失败:`, e);  
        }  
    })

操作步骤:
  1. 调用云对象
  2. interceptObject的invoke相应请求的预处理

预期结果:

在invoke中 使用 return false 停止云对象的调用

实际结果:

return false并没有起作用,云对象依然被调用了

bug描述:

需求是这样的:
需要在请求云对象时判断用户的token是否过期,过期了,就停止云对象的调用
我看云函数的 uniCloud.addInterceptor是支持在invoke中返回false来停止云函数api调用的,云对象就不行吗?

2024-11-12 19:15 负责人:DCloud_uniCloud_CRL 分享
已邀请:
DCloud_uniCloud_CRL

DCloud_uniCloud_CRL

需要抛出错误才会终止执行。

要回复问题请先登录注册