举报投诉联系我们 手机版 热门标签 编程学
您的位置:编程学 > 微信小程序部署云函数 微信小程序云开发SDK文档 云函数

微信小程序部署云函数 微信小程序云开发SDK文档 云函数

2023-05-09 11:18

微信小程序部署云函数 微信小程序云开发SDK文档 云函数

微信小程序部署云函数 微信小程序云开发SDK文档 云函数

微信小程序部署云函数

Promise Cloud.callFunction(Object object)

支持端:小程序 , 云函数

调用云函数

参数

Object object

属性类型默认值必填说明
namestring云函数名
dataObject传递给云函数的参数,在云函数中可通过 event 参数获取
configObject配置
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

object.config 的结构

属性类型默认值必填说明
envstring环境 ID,填写后将忽略 init 时指定的环境 ID

返回值

Promise.<Object>

属性类型说明
resultany云函数返回的结果
requestIDstring云函数执行 ID,可用于日志查询

data 参数说明

如果 data 中包含大数据字段(建议临界值 256KB),建议使用 wx.cloud.CDN 标记大数据字段,标记后在调用云函数时,该字段的内容将会上传至临时 CDN,然后在云函数中接收到的该字段值将是 CDN url,可在云函数中下载访问。通过这种方式,可以避免大数据传输造成的性能问题、及避免触及调用链路的传输大小限制。

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

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

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

  1. 若 Buffer 较大,可使用 wx.loud.CDN 方法标记字段内容
  2. 若 Buffer 非常小 (如 < 10k),可将 Buffer 转成 base64 再调用

示例代码

假设已有一个云函数 add:

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

在小程序端发起对云函数 add 的调用:

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

在云函数端任意云函数发起对云函数 add 的调用(完整云函数代码示例):

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
}

小程序端 callback 风格调用:

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

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


阅读全文
以上是编程学为你收集整理的微信小程序部署云函数 微信小程序云开发SDK文档 云函数全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
  • sdk 数据 SDK数据库 Collection·聚合操作

    sdk 数据 SDK数据库 Collection·聚合操作

    2023-04-20

    Collection.aggregate():Aggregate支持端:小程序 2.7.4,云函数 0.8.1,Web发起聚合操作,定义完聚合流水线阶段之后需调用end方法...

  • 微信小程序 checkbox 微信小程序 WeUI·Checkbox-group

    微信小程序 checkbox 微信小程序 WeUI·Checkbox-group

    2023-04-04

    Checkbox-group和CheckboxCheckbox-group是由一组单选或者多选Checkbox组件组成,效果如下图所示。引入组件在 page.json 中引入...

  •  Vue 3.0 Slot统一

    Vue 3.0 Slot统一

    2023-04-01 VUE3教程

    #概览此更改统一了 3.x 中的普通 slot 和作用域 slot。以下是变化的变更总结:this.$slots 现在将 slots 作为函数公开非兼容:移...

  •  Sublime Text怎么设置成中文简体

    Sublime Text怎么设置成中文简体

    2023-04-26

    下载安装完sublime最新版本,发现初始语言是英文,对于一部分人来说,看起来太累了。所以想着怎么把语言改成中文简体。1. 首先打...

  • vscode 光标 vscode 光标样式

    vscode 光标 vscode 光标样式

    2023-04-13

    这里我们可以先一起来玩一个“大家来找茬”的游戏:图1是使用没有修改过任何编辑器设置的 VS Code 打开的一个 JavaScript 的文件...

© 2024 编程学 bianchengxue.com 版权所有 联系我们
桂ICP备19012293号-7 返回底部