# callFunction(options)

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

请求云函数

# 参数

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

# 返回值

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

# callFunction 兼容性

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

# 参见

相关 Bug

# 示例

hello uni-app x

Template

Script

<template>
  <!-- #ifdef APP -->
  <scroll-view class="page-scroll-view">
  <!-- #endif -->
    <view>
      <page-head :title="title"></page-head>
      <view class="uni-padding-wrap uni-common-mt">
        <view class="uni-btn-v uni-common-mt">
          <button type="primary" @click="callFunction">请求云函数</button>
          <button type="primary" @click="callFunctionWithGeneric">请求云函数传入泛型</button>
        </view>
      </view>
    </view>
  <!-- #ifdef APP -->
  </scroll-view>
  <!-- #endif -->
</template>



<style>
</style>

# 调用云函数时传入泛型

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)
})