whr2349
whr2349
  • 发布:2021-08-19 16:58
  • 更新:2021-08-19 19:39
  • 阅读:951

uniCloud.addInterceptor拦截云函数得方法问题!

分类:uniCloud
uniCloud.addInterceptor('callFunction', {  
      invoke(param) {  
        // param为拦截Api的参数 例 {name: 'functionName', data: {'functionParam1': 1, 'functionParam2': 2}}  
        // 此处返回错误可终止api执行  
      },  
      success(res) {  
        // res为callFunction的返回值,此处可以对返回值进行修改  
        console.log(res);  
        if(res.result.code == 0){  

            return Promise.resolve(res.result)  

        }  
      },  
}

这个成功回调拦截success里面怎么把修改后得res传递出去啊?比如本来res是{result:{code:"",data;""}},现在我要拦截成功直接在后续得函数中拿到data,这个很正常得需求怎么实现啊,我现在拿不到啊!这个拦截器到底怎么向后传递值啊!!!!!

2021-08-19 16:58 负责人:无 分享
已邀请:
DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

res是个对象,不需要传出去,直接修改其中的值就行

  • whr2349 (作者)

    不行啊,改了res得值,后面.then(res)里面得res还是之前得啊

    2021-08-26 10:04

  • whr2349 (作者)

    uniCloud.callFunction({

    name: 'unirouter', // 要调用的云函数名称

    data: {

    action: 'user/phoneSignUp', // 路由地址,对应 controller 下 user.js 的 login 方法

    // 参数列表

    data: {

    // controller 通过 this.ctx.data 获取

    userName: 'demo',

    password: 'demo',

    },

    },

    }).then(res=>{

    console.log(res); //这里得res并没发生改变啊!

    })

    2021-08-26 10:10

  • whr2349 (作者)

    uniCloud.addInterceptor('callFunction', {

    invoke(param) {

    // param为拦截Api的参数 例 {name: 'functionName', data: {'functionParam1': 1, 'functionParam2': 2}}

    // 此处返回错误可终止api执行

    },

    success(res) {

    // res为callFunction的返回值,此处可以对返回值进行修改

    res= 1


      },    

    }

    2021-08-26 10:11

  • DCloud_uniCloud_WYQ

    回复 whr2349: ...建议先详细的学习下js的数据类型,https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Data_structures

    2021-08-26 11:59

  • whr2349 (作者)

    回复 DCloud_uniCloud_WYQ:不行啊 ,老哥。没解决问题啊,res在拦截器里面改了,后续得调用中还是没变啊

    2021-08-26 13:50

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