# callFunction(options)

4.13版本起安卓端使用UniCloudCallFunctionResult必须传入泛型,比如UniCloudCallFunctionResult<UTSJSONObject>,其中泛型类型为其result属性的类型

请求云函数

# callFunction 兼容性

Web Android iOS
4.0 阿里云 3.9,腾讯云 3.91,支付宝云 3.98 4.11

# 参数

名称 类型 必填 默认值 兼容性 描述
options UniCloudCallFunctionOptions - - -
名称 类型 必备 默认值 兼容性 描述
name string (string.CloudFunctionString) - - 云函数名
data any - - 云函数参数

# 返回值

类型
Promise<UniCloudCallFunctionResult<T>>
名称 类型 必备 默认值 兼容性 描述
result T - - 云函数返回结果
requestId string - - 云函数请求id

# 参见

# 调用云函数时传入泛型

4.13版本起支持,仅安卓端会构造对应的泛型的实例,web端和iOS端泛型仅作为类型使用。

用法:uniCloud.callFunction<泛型类型>({name: 'xxx', data: {}} as UniCloudCallFunctionOptions)

在不传泛型时callFunction返回的类型为Promise<UniCloudCallFunctionResult<UTSJSONObject>>,传入泛型后callFunction返回的类型为Promise<UniCloudCallFunctionResult<泛型类型>>

代码示例

// 云函数fn代码
'use strict';
exports.main = async (event, context) => {
  return {
    errCode: 0,
    errMsg: '',
    detail: 'call function detail'
  };
};
// 客户端代码
type CallFunctionResult = {
  errCode : number,
  errMsg : string,
  detail : string
}
uniCloud.callFunction<CallFunctionResult>(
  {
    name: 'fn',
    data: { a: 1 } as UTSJSONObject,
  } as UniCloudCallFunctionOptions
).then(function (res) {
  const result = res.result // result的类型为CallFunctionResult
  const detail = result.detail // 可直接使用.detail访问
  console.log(detail)
}).catch(function (err : any | null) {
  console.error(err)
})