收藏
回答

服务端调用云函数之间如何传递userInfo?

框架类型 问题类型 终端类型 AppID 基础库版本
小程序 Bug 客户端 wx382a656e02331edf 2.3.0

- 当前 Bug 的表现(可附上截图)

// b.js 函数处理 openid 后返回一个结果

exports.main = (event, context) => {  

      return handleOpenId(event.userInfo.openId) //如直接小程序端调用,可读取 event.userInfo.openId;  若由b函数调用则无法读取吗?

}

// a.js 需要调用b函数,并传递 userInfo={openId}

const cloud = require('wx-server-sdk')

exports.main = async (event, context) => {  

const res = await cloud.callFunction({    // 要调用的云函数名称

   name: 'b',    // 传递给云函数的参数

   data: {

        userInfo:{

            openId:event.openId  //自己包装一个userInfo

        }

   }

 })  

    return res.result

}


如何将a函数的openId传给b函数?

若小程序端调用a函数,a函数需要调用b函数时,若自己包装一个userInfo={openId}给b函数, 则系统似乎将userInfo字段重置为 {appId}, 在b函数中没有了openId字段?


- 预期表现

userInfo中可读取userInfo

- 复现路径


- 提供一个最简复现 Demo


最后一次编辑于  2018-09-27
回答关注问题邀请回答
收藏

1 个回答

  • 邓坤力
    邓坤力
    2018-09-28

    可以调用另一个云函数时作为参数传入

    2018-09-28
    有用
    回复 1
    • 阿峰Sammy
      阿峰Sammy
      2018-09-28

      你是说作为一个正常参数传入吗?类似这样

      //a.js

      cloud.callFunction({    // 要调用的云函数名称

         name: 'b',    // 传递给云函数的参数

         data: {

              openId

         }

       })  

      然后在b函数里判断两个字段吗?

      // b.js 函数处理 openid 后返回一个结果

      exports.main = (event, context) => {  

            return handleOpenId(event.userInfo.openId||event.openId) //如直接小程序端调用,可读取 event.userInfo.openId;  若由b函数调用则无法读取吗?

      }


      2018-09-28
      回复
登录 后发表内容