首页/知天下事/正文
Promise Cloud.callFunction在小程序中支持云函数调用的参数及配置说明

 2025年08月27日  阅读 1

摘要:支持端:小程序与云函数小程序支持调用云函数来实现更复杂的业务逻辑。云函数运行在云端,可以被小程序端调用,也可以被其他云函数调用。调用云函数参数说明调用云函数时,可以传递以下参数:data:传递给云函数的参数,在云函数中可通过event参数获取suc...

支持端:小程序与云函数

小程序支持调用云函数来实现更复杂的业务逻辑。云函数运行在云端,可以被小程序端调用,也可以被其他云函数调用。

调用云函数参数说明

调用云函数时,可以传递以下参数:

data: 传递给云函数的参数,在云函数中可通过event参数获取

success: 接口调用成功的回调函数

fail: 接口调用失败的回调函数

complete: 接口调用结束的回调函数(调用成功、失败都会执行)

data参数的结构

data参数支持以下属性:

env: 环境ID,填写后将忽略init时指定的环境ID

返回值说明

云函数调用会返回以下信息:

result: 云函数返回的结果

requestID: 云函数执行ID,可用于日志查询

大数据传输处理

如果data中包含大数据字段(建议临界值10KB),建议使用wx.cloud.CDN标记大数据字段。标记后在调用云函数时,该字段的内容将会上传至临时CDN,然后在云函数中接收到的该字段值将是CDN url,可在云函数中下载访问。

这种方式可以:

1. 避免大数据传输造成的性能问题

2. 避免触及调用链路的传输大小限制

Buffer类型数据处理

如果在data中传入了Buffer类型的数据,数据在JSON序列化的过程中会被转成{"type":"Buffer", data:[]}的格式。对于小程序端调用来说:

// 小程序端调用
wx.cloud.callFunction({
  // ...
  data: {
    buf: ArrayBuffer // 此处填入了某种方式获取得到的 Buffer 数据,可以是 request 下来的,可以是读文件读出来的等等
  },
})
// 云函数端收到的 event 参数的结构:
{
  "type": "Buffer",
  "data": [ 17, 371, 255, ... ] // Uint8 Array
}

建议避免传入Buffer类型的数据,因为会让数据体积增大,增加传输耗时。如果需要传递Buffer,有两种替代方案:

1. 若Buffer较大,可使用wx.cloud.CDN方法标记字段内容

2. 若Buffer非常小(如<10KB),可将Buffer转成base64再调用

调用示例

假设已有一个云函数add:

exports.add = (event, context, cb) => {
  return event.x + event.y
}


// 云函数入口文件
exports.main = async (event, context) => {
  return {
    sum: event.a + event.b
  }
}

小程序端调用云函数add:


wx.cloud.callFunction({
  name: 'add',
  data: {
    a: 1,
    b: 2
  }
}).then(res => {
  console.log(res.result.sum) // 3
})

wx.cloud.callFunction({
  // 要调用的云函数名称
  name: 'add',
  // 传递给云函数的event参数
  data: {
    x: 1,
    y: 2,
  }
}).then(res => {
  // output: res.result === 3
}).catch(err => {
  // handle error
})

Promise风格调用

小程序端同时支持Promise风格调用,上面的回调风格调用可以用Promise风格改写:

const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})
exports.main = async (event, context) => {
  const res = await cloud.callFunction({
    // 要调用的云函数名称
    name: 'add',
    // 传递给云函数的参数
    data: {
      x: 1,
      y: 2,
    }
  })
  // 3
  return res.result
}

___PROTECTED_BLOCK_2___

版权声明:本文为 “博览广文网” 原创文章,转载请附上原文出处链接及本声明;

原文链接:http://wen.bjhwtx.com/post/35939.html

标签:

博览广文网

博览广文网为所有文学爱好者、新闻爱好者、关注生活多方面内容的观众朋友提供多方位的内容呈现、提升阅读空间、填充碎片时间,开阔读者的视野、增长见识、了解民生、一个让您不出户尽知天下事的网站平台!
热门标签
关于我们
广文舒阅网—让天下读者有家可归!这里汇聚了各类优质文化信息,无论是全球热点、历史故事,还是实用百科、趣味探索,您都能轻松获取。我们希望用阅读点亮您的世界,让每一次浏览都充满收获和乐趣。
导航栏A标题
广文舒阅网
扫码关注
联系方式
全国服务热线:0755-88186625
Q Q:8705332
Email:admin@lanyu.com
地址:深圳市福田区海雅缤纷国际大厦5层501
Copyright 深圳市蓝宇科技有限公司 版权所有 备案号:京ICP备20013102号-1