189 8069 5689

创新互联小程序教程:微信小程序云开发SDK文档云函数

Promise Cloud.callFunction(Object object)

支持端:小程序 , 云函数

成都创新互联是专业的疏勒网站建设公司,疏勒接单;提供做网站、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行疏勒网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

调用云函数

参数

Object object

属性 类型 默认值 必填 说明
name string 是 云函数名
data Object 否 传递给云函数的参数,在云函数中可通过 event 参数获取
config Object 否 配置
success function 否 接口调用成功的回调函数
fail function 否 接口调用失败的回调函数
complete function 否 接口调用结束的回调函数(调用成功、失败都会执行)

object.config 的结构

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

返回值

Promise.
属性 类型 说明
result any 云函数返回的结果
requestID string 云函数执行 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文档云函数
当前链接:http://ptruijie.cn/article/djocdpp.html

联系我们

您好HELLO!
感谢您来到新都网站建设公司,若您有合作意向,请您为我们留言或使用以下方式联系我们, 我们将尽快给你回复,并为您提供真诚的设计服务,谢谢。
  • 电话:028- 86922220 18980695689
  • 商务合作邮箱:631063699@qq.com
  • 合作QQ: 532337155
  • 成都网站设计地址:成都市青羊区锣锅巷31号五金站写字楼6楼

广皓图文建站工作室

新都广皓图文网站建设公司拥有多年以上互联网从业经验的团队,始终保持务实的风格,以"帮助客户成功"为已任,专注于提供对客户有价值的服务。 我们已为众企业及上市公司提供专业的网站建设服务。我们不只是一家网站建设的网络公司;我们对营销、技术、管理都有自己独特见解,广皓图文建站采取“创意+综合+营销”一体化的方式为您提供更专业的服务!

广皓观点

相对传统的新都网站建设公司而言,广皓图文是互联网中的网站品牌策划,我们精于企业品牌与互联网相结合的整体战略服务。
我们始终认为,网站必须注入企业基因,真正使网站成为企业vi的一部分,让整个网站品牌策划体系变的深入而持久。