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文档云函数
标题URL:http://cdxtjz.cn/article/djocdpp.html

联系我们

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

小谭建站工作室

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

小谭观点

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